Changeset 5099 for LMDZ6/branches/Amaury_dev/libf/dyn3d
- Timestamp:
- Jul 22, 2024, 9:29:09 PM (6 months ago)
- Location:
- LMDZ6/branches/Amaury_dev/libf/dyn3d
- Files:
-
- 34 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev/libf/dyn3d/abort_gcm.F
r5082 r5099 1 ! 1 2 2 ! $Id$ 3 ! 3 4 4 c 5 5 c -
LMDZ6/branches/Amaury_dev/libf/dyn3d/addfi.F
r2598 r5099 1 ! 1 2 2 ! $Id$ 3 ! 3 4 4 SUBROUTINE addfi(pdt, leapf, forward, 5 5 S pucov, pvcov, pteta, pq , pps , -
LMDZ6/branches/Amaury_dev/libf/dyn3d/advect.F
r5086 r5099 1 ! 1 2 2 ! $Header$ 3 ! 3 4 4 SUBROUTINE advect(ucov,vcov,teta,w,massebx,masseby,du,dv,dteta) 5 5 -
LMDZ6/branches/Amaury_dev/libf/dyn3d/advtrac.F90
r5082 r5099 5 5 SUBROUTINE advtrac(pbaru, pbarv, p, masse,q,iapptrac,teta, flxw, pk) 6 6 ! Auteur : F. Hourdin 7 ! 7 8 8 ! Modif. P. Le Van (20/12/97) 9 9 ! F. Codron (10/99) 10 10 ! D. Le Croller (07/2001) 11 11 ! M.A Filiberti (04/2002) 12 ! 12 13 13 USE infotrac, ONLY: nqtot, tracers, isoCheck 14 14 USE control_mod, ONLY: iapp_tracvl, day_step … … 16 16 17 17 IMPLICIT NONE 18 ! 18 19 19 include "dimensions.h" 20 20 include "paramet.h" … … 96 96 97 97 ! .. Modif P.Le Van ( 20/12/97 ) .... 98 ! 98 99 99 ! traitement des flux de masse avant advection. 100 100 ! 1. calcul de w -
LMDZ6/branches/Amaury_dev/libf/dyn3d/bilan_dyn.F
r5093 r5099 1 ! 1 2 2 ! $Id$ 3 ! 3 4 4 SUBROUTINE bilan_dyn (ntrac,dt_app,dt_cum, 5 5 s ps,masse,pk,flux_u,flux_v,teta,phi,ucov,vcov,trac) -
LMDZ6/branches/Amaury_dev/libf/dyn3d/caladvtrac.F
r5082 r5099 1 ! 1 2 2 ! $Id$ 3 ! 3 4 4 c 5 5 c -
LMDZ6/branches/Amaury_dev/libf/dyn3d/caldyn.F
r5082 r5099 1 ! 1 2 2 ! $Id$ 3 ! 3 4 4 SUBROUTINE caldyn 5 5 $ (itau,ucov,vcov,teta,ps,masse,pk,pkf,phis , … … 12 12 13 13 !======================================================================= 14 ! 14 15 15 ! Auteur : P. Le Van 16 ! 16 17 17 ! Objet: 18 18 ! ------ 19 ! 19 20 20 ! Calcul des tendances dynamiques. 21 ! 21 22 22 ! Modif 04/93 F.Forget 23 23 !======================================================================= -
LMDZ6/branches/Amaury_dev/libf/dyn3d/covnat.F
r1907 r5099 1 ! 1 2 2 ! $Header$ 3 ! 3 4 4 SUBROUTINE covnat (klevel,ucov, vcov, unat, vnat ) 5 5 IMPLICIT NONE -
LMDZ6/branches/Amaury_dev/libf/dyn3d/dissip.F
r2597 r5099 1 ! 1 2 2 ! $Id$ 3 ! 3 4 4 SUBROUTINE dissip( vcov,ucov,teta,p, dv,du,dh ) 5 5 c -
LMDZ6/branches/Amaury_dev/libf/dyn3d/dteta1.F
r5086 r5099 1 ! 1 2 2 ! $Header$ 3 ! 3 4 4 SUBROUTINE dteta1 ( teta, pbaru, pbarv, dteta) 5 5 IMPLICIT NONE -
LMDZ6/branches/Amaury_dev/libf/dyn3d/dudv1.F
r5086 r5099 1 ! 1 2 2 ! $Header$ 3 ! 3 4 4 SUBROUTINE dudv1 ( vorpot, pbaru, pbarv, du, dv ) 5 5 IMPLICIT NONE -
LMDZ6/branches/Amaury_dev/libf/dyn3d/dudv2.F
r5086 r5099 1 ! 1 2 2 ! $Header$ 3 ! 3 4 4 SUBROUTINE dudv2 ( teta, pkf, bern, du, dv ) 5 5 -
LMDZ6/branches/Amaury_dev/libf/dyn3d/dynetat0.F90
r5091 r5099 1 1 SUBROUTINE dynetat0(fichnom,vcov,ucov,teta,q,masse,ps,phis,time) 2 ! 2 3 3 !------------------------------------------------------------------------------- 4 4 ! Authors: P. Le Van , L.Fairhead … … 9 9 USE strings_mod, ONLY: maxlen, msg, strStack, real2str, int2str 10 10 USE netcdf, ONLY: NF90_OPEN, NF90_NOWRITE, NF90_INQ_VARID, & 11 NF90_CLOSE, NF90_GET_VAR, NF90_NoErr11 NF90_CLOSE, nf90_get_var, nf90_noerr 12 12 USE readTracFiles_mod, ONLY: new2oldH2O, newHNO3, oldHNO3, getKey 13 13 USE control_mod, ONLY: planet_type … … 82 82 pa = tab_cntrl(idecal+13) 83 83 preff = tab_cntrl(idecal+14) 84 ! 84 85 85 clon = tab_cntrl(idecal+15) 86 86 clat = tab_cntrl(idecal+16) 87 87 grossismx = tab_cntrl(idecal+17) 88 88 grossismy = tab_cntrl(idecal+18) 89 ! 89 90 90 IF ( tab_cntrl(idecal+19)==1. ) THEN 91 91 fxyhypb = .TRUE. … … 116 116 CALL get_var2("aire" ,aire) 117 117 var="temps" 118 IF(NF90_INQ_VARID(fID,var,vID)/= NF90_NoErr) THEN118 IF(NF90_INQ_VARID(fID,var,vID)/=nf90_noerr) THEN 119 119 CALL msg('missing field <temps> ; trying with <Time>', modname) 120 120 var="Time" 121 121 CALL err(NF90_INQ_VARID(fID,var,vID),"inq",var) 122 122 END IF 123 CALL err( NF90_GET_VAR(fID,vID,time),"get",var)123 CALL err(nf90_get_var(fID,vID,time),"get",var) 124 124 CALL get_var2("phisinit",phis) 125 125 CALL get_var3("ucov",ucov) … … 132 132 ll=.FALSE. 133 133 #ifdef REPROBUS 134 ll = NF90_INQ_VARID(fID, 'HNO3tot', vID) /= NF90_NoErr !--- DETECT OLD REPRO start.nc FILE134 ll = NF90_INQ_VARID(fID, 'HNO3tot', vID) /= nf90_noerr !--- DETECT OLD REPRO start.nc FILE 135 135 #endif 136 136 DO iq=1,nqtot … … 145 145 END IF 146 146 !-------------------------------------------------------------------------------------------------------------------------- 147 IF(NF90_INQ_VARID(fID, var, vID) == NF90_NoErr .AND. .NOT.lSkip) THEN !=== REGULAR CASE: AVAILABLE VARIABLE148 CALL err( NF90_GET_VAR(fID,vID,q(:,:,:,iq)),"get",var)149 !-------------------------------------------------------------------------------------------------------------------------- 150 ELSE IF(NF90_INQ_VARID(fID, oldVar, vID) == NF90_NoErr) THEN !=== TRY WITH ALTERNATE NAME147 IF(NF90_INQ_VARID(fID, var, vID) == nf90_noerr .AND. .NOT.lSkip) THEN !=== REGULAR CASE: AVAILABLE VARIABLE 148 CALL err(nf90_get_var(fID,vID,q(:,:,:,iq)),"get",var) 149 !-------------------------------------------------------------------------------------------------------------------------- 150 ELSE IF(NF90_INQ_VARID(fID, oldVar, vID) == nf90_noerr) THEN !=== TRY WITH ALTERNATE NAME 151 151 CALL msg('Tracer <'//TRIM(var)//'> is missing => initialized to <'//TRIM(oldVar)//'>', modname) 152 CALL err( NF90_GET_VAR(fID,vID,q(:,:,:,iq)),"get",oldVar)152 CALL err(nf90_get_var(fID,vID,q(:,:,:,iq)),"get",oldVar) 153 153 !-------------------------------------------------------------------------------------------------------------------------- 154 154 ELSE IF(tracers(iq)%iso_iGroup == iH2O .AND. niso > 0) THEN !=== WATER ISOTOPES … … 209 209 REAL, INTENT(OUT) :: v(:) 210 210 CALL err(NF90_INQ_VARID(fID,var,vID),"inq",var) 211 CALL err( NF90_GET_VAR(fID,vID,v),"get",var)211 CALL err(nf90_get_var(fID,vID,v),"get",var) 212 212 END SUBROUTINE get_var1 213 213 … … 217 217 REAL, INTENT(OUT) :: v(:,:) 218 218 CALL err(NF90_INQ_VARID(fID,var,vID),"inq",var) 219 CALL err( NF90_GET_VAR(fID,vID,v),"get",var)219 CALL err(nf90_get_var(fID,vID,v),"get",var) 220 220 END SUBROUTINE get_var2 221 221 … … 225 225 REAL, INTENT(OUT) :: v(:,:,:) 226 226 CALL err(NF90_INQ_VARID(fID,var,vID),"inq",var) 227 CALL err( NF90_GET_VAR(fID,vID,v),"get",var)227 CALL err(nf90_get_var(fID,vID,v),"get",var) 228 228 END SUBROUTINE get_var3 229 229 … … 233 233 CHARACTER(LEN=*), INTENT(IN) :: typ !--- TYPE OF OPERATION 234 234 CHARACTER(LEN=*), INTENT(IN) :: nam !--- FIELD/FILE NAME 235 IF(ierr== NF90_NoERR) RETURN235 IF(ierr==nf90_noerr) RETURN 236 236 SELECT CASE(typ) 237 237 CASE('inq'); mesg="Field <"//TRIM(nam)//"> is missing" -
LMDZ6/branches/Amaury_dev/libf/dyn3d/dynredem.F90
r5088 r5099 1 1 SUBROUTINE dynredem0(fichnom,iday_end,phis) 2 ! 2 3 3 !------------------------------------------------------------------------------- 4 4 ! Write the NetCDF restart file (initialization). … … 82 82 tab_cntrl(22) = grossismx 83 83 tab_cntrl(23) = grossismy 84 ! 84 85 85 IF ( fxyhypb ) THEN 86 86 tab_cntrl(24) = 1. … … 155 155 156 156 END SUBROUTINE dynredem0 157 ! 158 !------------------------------------------------------------------------------- 159 160 161 !------------------------------------------------------------------------------- 162 ! 157 158 !------------------------------------------------------------------------------- 159 160 161 !------------------------------------------------------------------------------- 162 163 163 SUBROUTINE dynredem1(fichnom,time,vcov,ucov,teta,q,masse,ps) 164 ! 164 165 165 !------------------------------------------------------------------------------- 166 166 ! Purpose: Write the NetCDF restart file (append). … … 169 169 USE infotrac, ONLY: nqtot, tracers, type_trac 170 170 USE control_mod 171 USE netcdf, ONLY: NF90_OPEN, NF90_NOWRITE, NF90_GET_VAR, NF90_INQ_VARID, &172 NF90_CLOSE, NF90_WRITE, NF90_PUT_VAR, NF90_NoErr171 USE netcdf, ONLY: NF90_OPEN, NF90_NOWRITE, nf90_get_var, NF90_INQ_VARID, & 172 NF90_CLOSE, NF90_WRITE, NF90_PUT_VAR, nf90_noerr 173 173 USE dynredem_mod, ONLY: dynredem_write_u, dynredem_write_v, dynredem_read_u, & 174 174 err, modname, fil, msg … … 214 214 var="controle" 215 215 CALL err(NF90_INQ_VARID(nid,var,vID),"inq",var) 216 CALL err( NF90_GET_VAR(nid,vID,tab_cntrl),"get",var)216 CALL err(nf90_get_var(nid,vID,tab_cntrl),"get",var) 217 217 tab_cntrl(31)=DBLE(itau_dyn + itaufin) 218 218 CALL err(NF90_INQ_VARID(nid,var,vID),"inq",var) … … 236 236 fil="start_trac.nc" 237 237 ierr=NF90_INQ_VARID(nid_trac,var,vID_trac) 238 dum='inq'; IF(ierr== NF90_NoErr) dum='fnd'238 dum='inq'; IF(ierr==nf90_noerr) dum='fnd' 239 239 WRITE(lunout,*)msg(dum,var) 240 240 241 241 242 IF(ierr== NF90_NoErr) CALL dynredem_read_u(nid_trac,var,q(:,:,:,iq),llm)242 IF(ierr==nf90_noerr) CALL dynredem_read_u(nid_trac,var,q(:,:,:,iq),llm) 243 243 END IF 244 244 fil=fichnom -
LMDZ6/branches/Amaury_dev/libf/dyn3d/dynredem_mod.F90
r5090 r5099 17 17 18 18 !=============================================================================== 19 ! 19 20 20 SUBROUTINE dynredem_write_u(ncid,id,var,ll) 21 ! 21 22 22 !=============================================================================== 23 23 ! Arguments: … … 35 35 36 36 END SUBROUTINE dynredem_write_u 37 ! 38 !=============================================================================== 39 40 41 !=============================================================================== 42 ! 37 38 !=============================================================================== 39 40 41 !=============================================================================== 42 43 43 SUBROUTINE dynredem_write_v(ncid,id,var,ll) 44 ! 44 45 45 !=============================================================================== 46 46 ! Arguments: … … 58 58 59 59 END SUBROUTINE dynredem_write_v 60 ! 61 !=============================================================================== 62 63 64 !=============================================================================== 65 ! 60 61 !=============================================================================== 62 63 64 !=============================================================================== 65 66 66 SUBROUTINE dynredem_read_u(ncid,id,var,ll) 67 ! 67 68 68 !=============================================================================== 69 69 ! Arguments: … … 78 78 start(:)=[1,1,1,1]; count(:)=[iip1,jjp1,ll,1] 79 79 CALL err(NF90_INQ_VARID(ncid,id,nvarid),"inq",id) 80 CALL err( NF90_GET_VAR(ncid,nvarid,var,start,count),"get",id)80 CALL err(nf90_get_var(ncid,nvarid,var,start,count),"get",id) 81 81 82 82 END SUBROUTINE dynredem_read_u 83 ! 84 !=============================================================================== 85 86 87 !=============================================================================== 88 ! 83 84 !=============================================================================== 85 86 87 !=============================================================================== 88 89 89 SUBROUTINE cre_var(ncid,var,title,did,units) 90 ! 90 91 91 !=============================================================================== 92 92 ! Arguments: … … 101 101 102 102 END SUBROUTINE cre_var 103 ! 104 !=============================================================================== 105 106 107 !=============================================================================== 108 ! 103 104 !=============================================================================== 105 106 107 !=============================================================================== 108 109 109 SUBROUTINE put_var1(ncid,var,title,did,v,units) 110 ! 110 111 111 !=============================================================================== 112 112 ! Arguments: … … 124 124 125 125 END SUBROUTINE put_var1 126 ! 127 !=============================================================================== 128 129 130 !=============================================================================== 131 ! 126 127 !=============================================================================== 128 129 130 !=============================================================================== 131 132 132 SUBROUTINE put_var2(ncid,var,title,did,v,units) 133 ! 133 134 134 !=============================================================================== 135 135 ! Arguments: … … 147 147 148 148 END SUBROUTINE put_var2 149 ! 150 !=============================================================================== 151 152 153 !=============================================================================== 154 ! 149 150 !=============================================================================== 151 152 153 !=============================================================================== 154 155 155 FUNCTION msg(typ,nam) 156 ! 156 157 157 !=============================================================================== 158 158 ! Arguments: … … 172 172 173 173 END FUNCTION msg 174 ! 175 !=============================================================================== 176 177 178 !=============================================================================== 179 ! 174 175 !=============================================================================== 176 177 178 !=============================================================================== 179 180 180 SUBROUTINE err(ierr,typ,nam) 181 ! 181 182 182 !=============================================================================== 183 183 ! Arguments: … … 186 186 CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: nam !--- FIELD NAME 187 187 !=============================================================================== 188 IF(ierr== NF90_NoERR) RETURN188 IF(ierr==nf90_noerr) RETURN 189 189 IF(.NOT.PRESENT(typ)) THEN 190 190 CALL ABORT_gcm(modname,NF90_STRERROR(ierr),ierr) … … 194 194 195 195 END SUBROUTINE err 196 ! 196 197 197 !=============================================================================== 198 198 -
LMDZ6/branches/Amaury_dev/libf/dyn3d/fluxstokenc.F
r5082 r5099 1 ! 1 2 2 ! $Id$ 3 ! 3 4 4 SUBROUTINE fluxstokenc(pbaru,pbarv,masse,teta,phi,phis, 5 5 . time_step,itau ) -
LMDZ6/branches/Amaury_dev/libf/dyn3d/friction.F
r5082 r5099 1 ! 1 2 2 ! $Id$ 3 ! 3 4 4 c======================================================================= 5 5 SUBROUTINE friction(ucov,vcov,pdt) … … 16 16 17 17 !======================================================================= 18 ! 18 19 19 ! Friction for the Newtonian case: 20 20 ! -------------------------------- -
LMDZ6/branches/Amaury_dev/libf/dyn3d/gcm.F90
r5090 r5099 1 ! 1 2 2 ! $Id$ 3 ! 4 ! 5 ! 3 4 5 6 6 PROGRAM gcm 7 7 … … 44 44 45 45 !======================================================================= 46 ! 46 47 47 ! Auteur: P. Le Van /L. Fairhead/F.Hourdin 48 48 ! ------- 49 ! 49 50 50 ! Objet: 51 51 ! ------ 52 ! 52 53 53 ! GCM LMD nouvelle grille 54 ! 54 55 55 !======================================================================= 56 ! 56 57 57 ! ... Dans inigeom , nouveaux calculs pour les elongations cu , cv 58 58 ! et possibilite d'appeler une fonction f(y) a derivee tangente … … 60 60 ! ... Possibilite de choisir le schema pour l'advection de 61 61 ! q , en modifiant iadv dans traceur.def (MAF,10/02) . 62 ! 62 63 63 ! Pour Van-Leer + Vapeur d'eau saturee, iadv(1)=4. (F.Codron,10/99) 64 64 ! Pour Van-Leer iadv=10 65 ! 65 66 66 !----------------------------------------------------------------------- 67 67 ! Declarations: … … 140 140 ! lecture des fichiers gcm.def ou run.def 141 141 ! --------------------------------------- 142 ! 142 143 143 CALL conf_gcm( 99, .TRUE.) 144 144 … … 191 191 #endif 192 192 !----------------------------------------------------------------------- 193 ! 194 ! 193 194 195 195 !------------------------------------ 196 196 ! Initialisation partie parallele 197 197 !------------------------------------ 198 198 199 ! 200 ! 199 201 200 !----------------------------------------------------------------------- 202 201 ! Initialisation des traceurs … … 269 268 ENDIF 270 269 271 !272 270 ! on remet le calendrier \`a zero si demande 273 ! 271 274 272 IF (start_time /= starttime) then 275 273 WRITE(lunout,*)' GCM: Attention l''heure de depart lue dans le' & … … 370 368 CALL inifilr 371 369 endif ! of if (iflag_phys.eq.1) 372 ! 370 373 371 !----------------------------------------------------------------------- 374 372 ! Initialisation de la dissipation : … … 453 451 istphy=istdyn/iphysiq 454 452 455 456 !457 453 !----------------------------------------------------------------------- 458 454 ! Integration temporelle du modele : -
LMDZ6/branches/Amaury_dev/libf/dyn3d/getparam.F90
r2094 r5099 1 ! 1 2 2 ! $Id$ 3 ! 3 4 4 MODULE getparam 5 5 #ifdef CPP_IOIPSL … … 19 19 CONTAINS 20 20 SUBROUTINE ini_getparam(fichier) 21 ! 21 22 22 IMPLICIT NONE 23 ! 23 24 24 CHARACTER*(*) :: fichier 25 25 open(out_eff,file=fichier,status='unknown',form='formatted') … … 27 27 28 28 SUBROUTINE fin_getparam 29 ! 29 30 30 IMPLICIT NONE 31 ! 31 32 32 close(out_eff) 33 33 … … 35 35 36 36 SUBROUTINE getparamr(TARGET,def_val,ret_val,comment) 37 ! 37 38 38 IMPLICIT NONE 39 ! 39 40 40 ! Get a real scalar. We first check if we find it 41 41 ! in the database and if not we get it from the run.def 42 ! 42 43 43 ! getinr1d and getinr2d are written on the same pattern 44 ! 44 45 45 CHARACTER*(*) :: TARGET 46 46 REAL :: def_val … … 58 58 59 59 SUBROUTINE getparami(TARGET,def_val,ret_val,comment) 60 ! 60 61 61 IMPLICIT NONE 62 ! 62 63 63 ! Get a real scalar. We first check if we find it 64 64 ! in the database and if not we get it from the run.def 65 ! 65 66 66 ! getinr1d and getinr2d are written on the same pattern 67 ! 67 68 68 CHARACTER*(*) :: TARGET 69 69 INTEGER :: def_val … … 82 82 83 83 SUBROUTINE getparaml(TARGET,def_val,ret_val,comment) 84 ! 84 85 85 IMPLICIT NONE 86 ! 86 87 87 ! Get a real scalar. We first check if we find it 88 88 ! in the database and if not we get it from the run.def 89 ! 89 90 90 ! getinr1d and getinr2d are written on the same pattern 91 ! 91 92 92 CHARACTER*(*) :: TARGET 93 93 LOGICAL :: def_val -
LMDZ6/branches/Amaury_dev/libf/dyn3d/groupe.F
r5082 r5099 1 ! 1 2 2 ! $Header$ 3 ! 3 4 4 subroutine groupe(pext,pbaru,pbarv,pbarum,pbarvm,wm) 5 5 -
LMDZ6/branches/Amaury_dev/libf/dyn3d/groupeun.F
r2597 r5099 1 ! 1 2 2 ! $Header$ 3 ! 3 4 4 SUBROUTINE groupeun(jjmax,llmax,q) 5 5 -
LMDZ6/branches/Amaury_dev/libf/dyn3d/guide_mod.F90
r5093 r5099 1 ! 1 2 2 ! $Id$ 3 ! 3 4 4 MODULE guide_mod 5 5 … … 176 176 if (ncidpl==-99) then 177 177 rcod=nf90_open('apbp.nc',Nf90_NOWRITe, ncidpl) 178 if (rcod/= NF90_NOERR) THEN178 if (rcod/=nf90_noerr) THEN 179 179 abort_message=' Nudging error -> no file apbp.nc' 180 180 CALL abort_gcm(modname,abort_message,1) … … 184 184 if (ncidpl==-99) then 185 185 rcod=nf90_open('P.nc',Nf90_NOWRITe,ncidpl) 186 if (rcod/= NF90_NOERR) THEN186 if (rcod/=nf90_noerr) THEN 187 187 abort_message=' Nudging error -> no file P.nc' 188 188 CALL abort_gcm(modname,abort_message,1) … … 193 193 if (ncidpl==-99) then 194 194 rcod=nf90_open('u.nc',Nf90_NOWRITe,ncidpl) 195 if (rcod/= NF90_NOERR) THEN195 if (rcod/=nf90_noerr) THEN 196 196 CALL abort_gcm(modname, & 197 197 ' Nudging error -> no file u.nc',1) … … 202 202 if (ncidpl==-99) then 203 203 rcod=nf90_open('v.nc',nf90_nowrite,ncidpl) 204 if (rcod/= NF90_NOERR) THEN204 if (rcod/=nf90_noerr) THEN 205 205 CALL abort_gcm(modname, & 206 206 ' Nudging error -> no file v.nc',1) … … 210 210 if (ncidpl==-99) then 211 211 rcod=nf90_open('T.nc',nf90_nowrite,ncidpl) 212 if (rcod/= NF90_NOERR) THEN212 if (rcod/=nf90_noerr) THEN 213 213 CALL abort_gcm(modname, & 214 214 ' Nudging error -> no file T.nc',1) … … 218 218 if (ncidpl==-99) then 219 219 rcod=nf90_open('hur.nc',nf90_nowrite, ncidpl) 220 if (rcod/= NF90_NOERR) THEN220 if (rcod/=nf90_noerr) THEN 221 221 CALL abort_gcm(modname, & 222 222 ' Nudging error -> no file hur.nc',1) … … 227 227 endif 228 228 error=nf90_inq_dimid(ncidpl,'LEVEL',rid) 229 IF (error/= NF90_NOERR) error=nf90_inq_dimid(ncidpl,'PRESSURE',rid)230 IF (error/= NF90_NOERR) THEN229 IF (error/=nf90_noerr) error=nf90_inq_dimid(ncidpl,'PRESSURE',rid) 230 IF (error/=nf90_noerr) THEN 231 231 CALL abort_gcm(modname,'Nudging: error reading pressure levels',1) 232 232 ENDIF … … 1120 1120 write(*,*) trim(modname)//' Reading nudging on model levels' 1121 1121 rcode = nf90_open('apbp.nc', nf90_nowrite, ncidpl) 1122 IF (rcode/= NF90_NOERR) THEN1122 IF (rcode/=nf90_noerr) THEN 1123 1123 abort_message='Nudging: error -> no file apbp.nc' 1124 1124 CALL abort_gcm(modname,abort_message,1) 1125 1125 ENDIF 1126 1126 rcode = nf90_inq_varid(ncidpl, 'AP', varidap) 1127 IF (rcode/= NF90_NOERR) THEN1127 IF (rcode/=nf90_noerr) THEN 1128 1128 abort_message='Nudging: error -> no AP variable in file apbp.nc' 1129 1129 CALL abort_gcm(modname,abort_message,1) 1130 1130 ENDIF 1131 1131 rcode = nf90_inq_varid(ncidpl, 'BP', varidbp) 1132 IF (rcode/= NF90_NOERR) THEN1132 IF (rcode/=nf90_noerr) THEN 1133 1133 abort_message='Nudging: error -> no BP variable in file apbp.nc' 1134 1134 CALL abort_gcm(modname,abort_message,1) … … 1140 1140 if (guide_plevs==2) then 1141 1141 rcode = nf90_open('P.nc', nf90_nowrite, ncidp) 1142 IF (rcode/= NF90_NOERR) THEN1142 IF (rcode/=nf90_noerr) THEN 1143 1143 abort_message='Nudging: error -> no file P.nc' 1144 1144 CALL abort_gcm(modname,abort_message,1) 1145 1145 ENDIF 1146 1146 rcode = nf90_inq_varid(ncidp, 'PRES', varidp) 1147 IF (rcode/= NF90_NOERR) THEN1147 IF (rcode/=nf90_noerr) THEN 1148 1148 abort_message='Nudging: error -> no PRES variable in file P.nc' 1149 1149 CALL abort_gcm(modname,abort_message,1) … … 1156 1156 if (guide_u) then 1157 1157 rcode = nf90_open('u.nc', nf90_nowrite, ncidu) 1158 IF (rcode/= NF90_NOERR) THEN1158 IF (rcode/=nf90_noerr) THEN 1159 1159 abort_message='Nudging: error -> no file u.nc' 1160 1160 CALL abort_gcm(modname,abort_message,1) 1161 1161 ENDIF 1162 1162 rcode = nf90_inq_varid(ncidu, 'UWND', varidu) 1163 IF (rcode/= NF90_NOERR) THEN1163 IF (rcode/=nf90_noerr) THEN 1164 1164 abort_message='Nudging: error -> no UWND variable in file u.nc' 1165 1165 CALL abort_gcm(modname,abort_message,1) … … 1169 1169 1170 1170 status=nf90_inq_dimid(ncidu, "LONU", dimid) 1171 status= NF90_INQUIRE_DIMENSION(ncidu,dimid,namedim,lendim)1171 status=nf90_inquire_dimension(ncidu,dimid,namedim,lendim) 1172 1172 IF (lendim /= iip1) THEN 1173 1173 abort_message='dimension LONU different from iip1 in u.nc' … … 1176 1176 1177 1177 status=nf90_inq_dimid(ncidu, "LATU", dimid) 1178 status= NF90_INQUIRE_DIMENSION(ncidu,dimid,namedim,lendim)1178 status=nf90_inquire_dimension(ncidu,dimid,namedim,lendim) 1179 1179 IF (lendim /= jjp1) THEN 1180 1180 abort_message='dimension LATU different from jjp1 in u.nc' … … 1187 1187 if (guide_v) then 1188 1188 rcode = nf90_open('v.nc', nf90_nowrite, ncidv) 1189 IF (rcode/= NF90_NOERR) THEN1189 IF (rcode/=nf90_noerr) THEN 1190 1190 abort_message='Nudging: error -> no file v.nc' 1191 1191 CALL abort_gcm(modname,abort_message,1) 1192 1192 ENDIF 1193 1193 rcode = nf90_inq_varid(ncidv, 'VWND', varidv) 1194 IF (rcode/= NF90_NOERR) THEN1194 IF (rcode/=nf90_noerr) THEN 1195 1195 abort_message='Nudging: error -> no VWND variable in file v.nc' 1196 1196 CALL abort_gcm(modname,abort_message,1) … … 1200 1200 1201 1201 status=nf90_inq_dimid(ncidv, "LONV", dimid) 1202 status= NF90_INQUIRE_DIMENSION(ncidv,dimid,namedim,lendim)1202 status=nf90_inquire_dimension(ncidv,dimid,namedim,lendim) 1203 1203 1204 1204 IF (lendim /= iip1) THEN … … 1209 1209 1210 1210 status=nf90_inq_dimid(ncidv, "LATV", dimid) 1211 status= NF90_INQUIRE_DIMENSION(ncidv,dimid,namedim,lendim)1211 status=nf90_inquire_dimension(ncidv,dimid,namedim,lendim) 1212 1212 IF (lendim /= jjm) THEN 1213 1213 abort_message='dimension LATV different from jjm in v.nc' … … 1220 1220 if (guide_T) then 1221 1221 rcode = nf90_open('T.nc', nf90_nowrite, ncidt) 1222 IF (rcode/= NF90_NOERR) THEN1222 IF (rcode/=nf90_noerr) THEN 1223 1223 abort_message='Nudging: error -> no file T.nc' 1224 1224 CALL abort_gcm(modname,abort_message,1) 1225 1225 ENDIF 1226 1226 rcode = nf90_inq_varid(ncidt, 'AIR', varidt) 1227 IF (rcode/= NF90_NOERR) THEN1227 IF (rcode/=nf90_noerr) THEN 1228 1228 abort_message='Nudging: error -> no AIR variable in file T.nc' 1229 1229 CALL abort_gcm(modname,abort_message,1) … … 1233 1233 1234 1234 status=nf90_inq_dimid(ncidt, "LONV", dimid) 1235 status= NF90_INQUIRE_DIMENSION(ncidt,dimid,namedim,lendim)1235 status=nf90_inquire_dimension(ncidt,dimid,namedim,lendim) 1236 1236 IF (lendim /= iip1) THEN 1237 1237 abort_message='dimension LONV different from iip1 in T.nc' … … 1240 1240 1241 1241 status=nf90_inq_dimid(ncidt, "LATU", dimid) 1242 status= NF90_INQUIRE_DIMENSION(ncidt,dimid,namedim,lendim)1242 status=nf90_inquire_dimension(ncidt,dimid,namedim,lendim) 1243 1243 IF (lendim /= jjp1) THEN 1244 1244 abort_message='dimension LATU different from jjp1 in T.nc' … … 1251 1251 if (guide_Q) then 1252 1252 rcode = nf90_open('hur.nc', nf90_nowrite, ncidQ) 1253 IF (rcode/= NF90_NOERR) THEN1253 IF (rcode/=nf90_noerr) THEN 1254 1254 abort_message='Nudging: error -> no file hur.nc' 1255 1255 CALL abort_gcm(modname,abort_message,1) 1256 1256 ENDIF 1257 1257 rcode = nf90_inq_varid(ncidQ, 'RH', varidQ) 1258 IF (rcode/= NF90_NOERR) THEN1258 IF (rcode/=nf90_noerr) THEN 1259 1259 abort_message='Nudging: error -> no RH variable in file hur.nc' 1260 1260 CALL abort_gcm(modname,abort_message,1) … … 1264 1264 1265 1265 status=nf90_inq_dimid(ncidQ, "LONV", dimid) 1266 status= NF90_INQUIRE_DIMENSION(ncidQ,dimid,namedim,lendim)1266 status=nf90_inquire_dimension(ncidQ,dimid,namedim,lendim) 1267 1267 IF (lendim /= iip1) THEN 1268 1268 abort_message='dimension LONV different from iip1 in hur.nc' … … 1271 1271 1272 1272 status=nf90_inq_dimid(ncidQ, "LATU", dimid) 1273 status= NF90_INQUIRE_DIMENSION(ncidQ,dimid,namedim,lendim)1273 status=nf90_inquire_dimension(ncidQ,dimid,namedim,lendim) 1274 1274 IF (lendim /= jjp1) THEN 1275 1275 abort_message='dimension LATU different from jjp1 in hur.nc' … … 1282 1282 if ((guide_P).OR.(guide_modele)) then 1283 1283 rcode = nf90_open('ps.nc', nf90_nowrite, ncidps) 1284 IF (rcode/= NF90_NOERR) THEN1284 IF (rcode/=nf90_noerr) THEN 1285 1285 abort_message='Nudging: error -> no file ps.nc' 1286 1286 CALL abort_gcm(modname,abort_message,1) 1287 1287 ENDIF 1288 1288 rcode = nf90_inq_varid(ncidps, 'SP', varidps) 1289 IF (rcode/= NF90_NOERR) THEN1289 IF (rcode/=nf90_noerr) THEN 1290 1290 abort_message='Nudging: error -> no SP variable in file ps.nc' 1291 1291 CALL abort_gcm(modname,abort_message,1) … … 1301 1301 ! Coefs ap, bp pour calcul de la pression aux differents niveaux 1302 1302 if (guide_plevs==1) then 1303 status= NF90_GET_VAR(ncidpl,varidap,apnc,[1],[nlevnc])1304 status= NF90_GET_VAR(ncidpl,varidbp,bpnc,[1],[nlevnc])1303 status=nf90_get_var(ncidpl,varidap,apnc,[1],[nlevnc]) 1304 status=nf90_get_var(ncidpl,varidbp,bpnc,[1],[nlevnc]) 1305 1305 ELSEIF (guide_plevs==0) THEN 1306 status= NF90_GET_VAR(ncidpl,varidpl,apnc,[1],[nlevnc])1306 status=nf90_get_var(ncidpl,varidpl,apnc,[1],[nlevnc]) 1307 1307 !FC Pour les corrections la pression est deja en Pascals on commente la ligne ci-dessous 1308 1308 IF(convert_Pa) apnc=apnc*100.! conversion en Pascals … … 1329 1329 ! Pression 1330 1330 if (guide_plevs==2) then 1331 status= NF90_GET_VAR(ncidp,varidp,pnat2,start,count)1331 status=nf90_get_var(ncidp,varidp,pnat2,start,count) 1332 1332 IF (invert_y) THEN 1333 1333 ! PRINT*,"Invertion impossible actuellement" … … 1339 1339 ! Vent zonal 1340 1340 if (guide_u) then 1341 status= NF90_GET_VAR(ncidu,varidu,unat2,start,count)1341 status=nf90_get_var(ncidu,varidu,unat2,start,count) 1342 1342 IF (invert_y) THEN 1343 1343 CALL invert_lat(iip1,jjp1,nlevnc,unat2) … … 1347 1347 ! Temperature 1348 1348 if (guide_T) then 1349 status= NF90_GET_VAR(ncidt,varidt,tnat2,start,count)1349 status=nf90_get_var(ncidt,varidt,tnat2,start,count) 1350 1350 IF (invert_y) THEN 1351 1351 CALL invert_lat(iip1,jjp1,nlevnc,tnat2) … … 1355 1355 ! Humidite 1356 1356 if (guide_Q) then 1357 status= NF90_GET_VAR(ncidQ,varidQ,qnat2,start,count)1357 status=nf90_get_var(ncidQ,varidQ,qnat2,start,count) 1358 1358 IF (invert_y) THEN 1359 1359 CALL invert_lat(iip1,jjp1,nlevnc,qnat2) … … 1365 1365 if (guide_v) then 1366 1366 count(2)=jjm 1367 status= NF90_GET_VAR(ncidv,varidv,vnat2,start,count)1367 status=nf90_get_var(ncidv,varidv,vnat2,start,count) 1368 1368 IF (invert_y) THEN 1369 1369 CALL invert_lat(iip1,jjm,nlevnc,vnat2) … … 1378 1378 count(3)=1 1379 1379 count(4)=0 1380 status= NF90_GET_VAR(ncidps,varidps,psnat2,start,count)1380 status=nf90_get_var(ncidps,varidps,psnat2,start,count) 1381 1381 IF (invert_y) THEN 1382 1382 CALL invert_lat(iip1,jjp1,1,psnat2) … … 1420 1420 write(*,*)trim(modname)//' Reading nudging on model levels' 1421 1421 rcode = nf90_open('apbp.nc', nf90_nowrite, ncidpl) 1422 IF (rcode/= NF90_NOERR) THEN1422 IF (rcode/=nf90_noerr) THEN 1423 1423 abort_message='Nudging: error -> no file apbp.nc' 1424 1424 CALL abort_gcm(modname,abort_message,1) 1425 1425 ENDIF 1426 1426 rcode = nf90_inq_varid(ncidpl, 'AP', varidap) 1427 IF (rcode/= NF90_NOERR) THEN1427 IF (rcode/=nf90_noerr) THEN 1428 1428 abort_message='Nudging: error -> no AP variable in file apbp.nc' 1429 1429 CALL abort_gcm(modname,abort_message,1) 1430 1430 ENDIF 1431 1431 rcode = nf90_inq_varid(ncidpl, 'BP', varidbp) 1432 IF (rcode/= NF90_NOERR) THEN1432 IF (rcode/=nf90_noerr) THEN 1433 1433 abort_message='Nudging: error -> no BP variable in file apbp.nc' 1434 1434 CALL abort_gcm(modname,abort_message,1) … … 1439 1439 if (guide_plevs==2) then 1440 1440 rcode = nf90_open('P.nc', nf90_nowrite, ncidp) 1441 IF (rcode/= NF90_NOERR) THEN1441 IF (rcode/=nf90_noerr) THEN 1442 1442 abort_message='Nudging: error -> no file P.nc' 1443 1443 CALL abort_gcm(modname,abort_message,1) 1444 1444 ENDIF 1445 1445 rcode = nf90_inq_varid(ncidp, 'PRES', varidp) 1446 IF (rcode/= NF90_NOERR) THEN1446 IF (rcode/=nf90_noerr) THEN 1447 1447 abort_message='Nudging: error -> no PRES variable in file P.nc' 1448 1448 CALL abort_gcm(modname,abort_message,1) … … 1454 1454 if (guide_u) then 1455 1455 rcode = nf90_open('u.nc', nf90_nowrite, ncidu) 1456 IF (rcode/= NF90_NOERR) THEN1456 IF (rcode/=nf90_noerr) THEN 1457 1457 abort_message='Nudging: error -> no file u.nc' 1458 1458 CALL abort_gcm(modname,abort_message,1) 1459 1459 ENDIF 1460 1460 rcode = nf90_inq_varid(ncidu, 'UWND', varidu) 1461 IF (rcode/= NF90_NOERR) THEN1461 IF (rcode/=nf90_noerr) THEN 1462 1462 abort_message='Nudging: error -> no UWND variable in file u.nc' 1463 1463 CALL abort_gcm(modname,abort_message,1) … … 1469 1469 if (guide_v) then 1470 1470 rcode = nf90_open('v.nc', nf90_nowrite, ncidv) 1471 IF (rcode/= NF90_NOERR) THEN1471 IF (rcode/=nf90_noerr) THEN 1472 1472 abort_message='Nudging: error -> no file v.nc' 1473 1473 CALL abort_gcm(modname,abort_message,1) 1474 1474 ENDIF 1475 1475 rcode = nf90_inq_varid(ncidv, 'VWND', varidv) 1476 IF (rcode/= NF90_NOERR) THEN1476 IF (rcode/=nf90_noerr) THEN 1477 1477 abort_message='Nudging: error -> no VWND variable in file v.nc' 1478 1478 CALL abort_gcm(modname,abort_message,1) … … 1484 1484 if (guide_T) then 1485 1485 rcode = nf90_open('T.nc', nf90_nowrite, ncidt) 1486 IF (rcode/= NF90_NOERR) THEN1486 IF (rcode/=nf90_noerr) THEN 1487 1487 abort_message='Nudging: error -> no file T.nc' 1488 1488 CALL abort_gcm(modname,abort_message,1) 1489 1489 ENDIF 1490 1490 rcode = nf90_inq_varid(ncidt, 'AIR', varidt) 1491 IF (rcode/= NF90_NOERR) THEN1491 IF (rcode/=nf90_noerr) THEN 1492 1492 abort_message='Nudging: error -> no AIR variable in file T.nc' 1493 1493 CALL abort_gcm(modname,abort_message,1) … … 1499 1499 if (guide_Q) then 1500 1500 rcode = nf90_open('hur.nc', nf90_nowrite, ncidQ) 1501 IF (rcode/= NF90_NOERR) THEN1501 IF (rcode/=nf90_noerr) THEN 1502 1502 abort_message='Nudging: error -> no file hur.nc' 1503 1503 CALL abort_gcm(modname,abort_message,1) 1504 1504 ENDIF 1505 1505 rcode = nf90_inq_varid(ncidQ, 'RH', varidQ) 1506 IF (rcode/= NF90_NOERR) THEN1506 IF (rcode/=nf90_noerr) THEN 1507 1507 abort_message='Nudging: error -> no RH,variable in file hur.nc' 1508 1508 CALL abort_gcm(modname,abort_message,1) … … 1514 1514 if ((guide_P).OR.(guide_modele)) then 1515 1515 rcode = nf90_open('ps.nc', nf90_nowrite, ncidps) 1516 IF (rcode/= NF90_NOERR) THEN1516 IF (rcode/=nf90_noerr) THEN 1517 1517 abort_message='Nudging: error -> no file ps.nc' 1518 1518 CALL abort_gcm(modname,abort_message,1) 1519 1519 ENDIF 1520 1520 rcode = nf90_inq_varid(ncidps, 'SP', varidps) 1521 IF (rcode/= NF90_NOERR) THEN1521 IF (rcode/=nf90_noerr) THEN 1522 1522 abort_message='Nudging: error -> no SP variable in file ps.nc' 1523 1523 CALL abort_gcm(modname,abort_message,1) … … 1533 1533 ! Coefs ap, bp pour calcul de la pression aux differents niveaux 1534 1534 if (guide_plevs==1) then 1535 status= NF90_GET_VAR(ncidpl,varidap,apnc,[1],[nlevnc])1536 status= NF90_GET_VAR(ncidpl,varidbp,bpnc,[1],[nlevnc])1535 status=nf90_get_var(ncidpl,varidap,apnc,[1],[nlevnc]) 1536 status=nf90_get_var(ncidpl,varidbp,bpnc,[1],[nlevnc]) 1537 1537 elseif (guide_plevs==0) THEN 1538 status= NF90_GET_VAR(ncidpl,varidpl,apnc,[1],[nlevnc])1538 status=nf90_get_var(ncidpl,varidpl,apnc,[1],[nlevnc]) 1539 1539 apnc=apnc*100.! conversion en Pascals 1540 1540 bpnc(:)=0. … … 1560 1560 ! Pression 1561 1561 if (guide_plevs==2) then 1562 status= NF90_GET_VAR(ncidp,varidp,zu,start,count)1562 status=nf90_get_var(ncidp,varidp,zu,start,count) 1563 1563 DO i=1,iip1 1564 1564 pnat2(i,:,:)=zu(:,:) … … 1573 1573 ! Vent zonal 1574 1574 if (guide_u) then 1575 status= NF90_GET_VAR(ncidu,varidu,zu,start,count)1575 status=nf90_get_var(ncidu,varidu,zu,start,count) 1576 1576 DO i=1,iip1 1577 1577 unat2(i,:,:)=zu(:,:) … … 1586 1586 ! Temperature 1587 1587 if (guide_T) then 1588 status= NF90_GET_VAR(ncidt,varidt,zu,start,count)1588 status=nf90_get_var(ncidt,varidt,zu,start,count) 1589 1589 DO i=1,iip1 1590 1590 tnat2(i,:,:)=zu(:,:) … … 1599 1599 ! Humidite 1600 1600 if (guide_Q) then 1601 status= NF90_GET_VAR(ncidQ,varidQ,zu,start,count)1601 status=nf90_get_var(ncidQ,varidQ,zu,start,count) 1602 1602 DO i=1,iip1 1603 1603 qnat2(i,:,:)=zu(:,:) … … 1613 1613 if (guide_v) then 1614 1614 count(2)=jjm 1615 status= NF90_GET_VAR(ncidv,varidv,zv,start,count)1615 status=nf90_get_var(ncidv,varidv,zv,start,count) 1616 1616 DO i=1,iip1 1617 1617 vnat2(i,:,:)=zv(:,:) … … 1631 1631 count(3)=1 1632 1632 count(4)=0 1633 status= NF90_GET_VAR(ncidps,varidps,zu(:,1),start,count)1633 status=nf90_get_var(ncidps,varidps,zu(:,1),start,count) 1634 1634 DO i=1,iip1 1635 1635 psnat2(i,:)=zu(:,1) -
LMDZ6/branches/Amaury_dev/libf/dyn3d/iniacademic.F90
r5088 r5099 1 ! 1 2 2 ! $Id$ 3 ! 3 4 4 SUBROUTINE iniacademic(vcov,ucov,teta,q,masse,ps,phis,time_0) 5 5 … … 22 22 USE ener_mod, ONLY: etot0,ptot0,ztot0,stot0,ang0 23 23 USE readTracFiles_mod, ONLY: addPhase 24 use netcdf, only : NF90_NOWRITE,NF90_OPEN, NF90_NOERR,NF90_INQ_VARID,NF90_CLOSE,NF90_GET_VAR24 use netcdf, only : NF90_NOWRITE,NF90_OPEN,nf90_noerr,NF90_INQ_VARID,NF90_CLOSE,nf90_get_var 25 25 26 26 ! Author: Frederic Hourdin original: 15/01/93 … … 95 95 ! 1. Initializations for Earth-like case 96 96 ! -------------------------------------- 97 ! 97 98 98 ! initialize planet radius, rotation rate,... 99 99 call conf_planete … … 141 141 relief=0. 142 142 ierr = NF90_OPEN ('relief_in.nc', NF90_NOWRITE,nid_relief) 143 if (ierr== NF90_NOERR) THEN143 if (ierr==nf90_noerr) THEN 144 144 ierr=NF90_INQ_VARID(nid_relief,'RELIEF',varid) 145 if (ierr== NF90_NOERR) THEN146 ierr= NF90_GET_VAR(nid_relief,varid,relief(1:iim,1:jjp1))145 if (ierr==nf90_noerr) THEN 146 ierr=nf90_get_var(nid_relief,varid,relief(1:iim,1:jjp1)) 147 147 relief(iip1,:)=relief(1,:) 148 148 else -
LMDZ6/branches/Amaury_dev/libf/dyn3d/integrd.F
r5091 r5099 1 ! 1 2 2 ! $Id$ 3 ! 3 4 4 SUBROUTINE integrd 5 5 $ ( nq,vcovm1,ucovm1,tetam1,psm1,massem1, -
LMDZ6/branches/Amaury_dev/libf/dyn3d/leapfrog.F
r5091 r5099 1 ! 1 2 2 ! $Id$ 3 ! 3 4 4 c 5 5 c -
LMDZ6/branches/Amaury_dev/libf/dyn3d/logic_mod.F90
r4996 r5099 1 ! 1 2 2 ! $Id$ 3 ! 3 4 4 MODULE logic_mod 5 5 -
LMDZ6/branches/Amaury_dev/libf/dyn3d/paramet.h
r1907 r5099 1 ! 1 2 2 ! $Header$ 3 ! 4 ! 3 4 5 5 ! ATTENTION!!!!: ce fichier include est compatible format fixe/format libre 6 6 ! veillez n'utiliser que des ! pour les commentaires 7 7 ! et bien positionner les & des lignes de continuation 8 8 ! (les placer en colonne 6 et en colonne 73) 9 ! 10 ! 9 10 11 11 !----------------------------------------------------------------------- 12 12 ! INCLUDE 'paramet.h' -
LMDZ6/branches/Amaury_dev/libf/dyn3d/qminimum.F
r5082 r5099 1 ! 1 2 2 ! $Header$ 3 ! 3 4 4 SUBROUTINE qminimum( q,nqtot,deltap ) 5 5 -
LMDZ6/branches/Amaury_dev/libf/dyn3d/replay3d.F90
r5090 r5099 1 ! 1 2 2 ! $Id: gcm.F90 3579 2019-10-09 13:11:07Z fairhead $ 3 ! 4 ! 5 ! 3 4 5 6 6 PROGRAM replay3d 7 7 … … 30 30 31 31 !======================================================================= 32 ! 32 33 33 ! Auteur: P. Le Van /L. Fairhead/F.Hourdin 34 34 ! ------- 35 ! 35 36 36 ! Objet: 37 37 ! ------ 38 ! 38 39 39 ! GCM LMD nouvelle grille 40 ! 40 41 41 !======================================================================= 42 ! 42 43 43 ! ... Dans inigeom , nouveaux calculs pour les elongations cu , cv 44 44 ! et possibilite d'appeler une fonction f(y) a derivee tangente … … 46 46 ! ... Possibilite de choisir le schema pour l'advection de 47 47 ! q , en modifiant iadv dans traceur.def (MAF,10/02) . 48 ! 48 49 49 ! Pour Van-Leer + Vapeur d'eau saturee, iadv(1)=4. (F.Codron,10/99) 50 50 ! Pour Van-Leer iadv=10 51 ! 51 52 52 !----------------------------------------------------------------------- 53 53 ! Declarations: … … 85 85 ! lecture des fichiers gcm.def ou run.def 86 86 ! --------------------------------------- 87 ! 87 88 88 preff=101325. 89 89 pa=50000. … … 128 128 zdtvr = daysec/REAL(day_step) 129 129 130 !131 130 ! on remet le calendrier \`a zero si demande 132 ! 131 133 132 annee_ref = anneeref 134 133 day_ref = dayref -
LMDZ6/branches/Amaury_dev/libf/dyn3d/sw_case_williamson91_6.F
r2600 r5099 1 ! 1 2 2 ! $Id $ 3 ! 3 4 4 SUBROUTINE sw_case_williamson91_6(vcov,ucov,teta,masse,ps) 5 5 -
LMDZ6/branches/Amaury_dev/libf/dyn3d/temps_mod.F90
r3540 r5099 1 ! 1 2 2 ! $Id$ 3 ! 3 4 4 MODULE temps_mod 5 5 -
LMDZ6/branches/Amaury_dev/libf/dyn3d/top_bound.F
r5093 r5099 1 ! 1 2 2 ! $Id$ 3 ! 3 4 4 SUBROUTINE top_bound(vcov,ucov,teta,masse,dt) 5 5 -
LMDZ6/branches/Amaury_dev/libf/dyn3d/wrgrads.F
r5082 r5099 1 ! 1 2 2 ! $Header$ 3 ! 3 4 4 subroutine wrgrads(if,nl,field,name,titlevar) 5 5 implicit none -
LMDZ6/branches/Amaury_dev/libf/dyn3d/write_paramLMDZ_dyn.h
r3103 r5099 136 136 ! CALL histwrite(nid_ctesGCM, "cycle_diurne", itau_w, 137 137 ! . zx_tmp_2d,iip1*jjp1,ndex2d) 138 ! 138 139 139 ! IF(soil_model) THEN 140 140 ! zx_tmp_2d(1:iip1,1:jjp1)=1. … … 144 144 ! CALL histwrite(nid_ctesGCM, "soil_model", itau_w, 145 145 ! . zx_tmp_2d,iip1*jjp1,ndex2d) 146 ! 146 147 147 ! IF(new_oliq) THEN 148 148 ! zx_tmp_2d(1:iip1,1:jjp1)=1. … … 152 152 ! CALL histwrite(nid_ctesGCM, "new_oliq", itau_w, 153 153 ! . zx_tmp_2d,iip1*jjp1,ndex2d) 154 ! 154 155 155 ! IF(ok_orodr) THEN 156 156 ! zx_tmp_2d(1:iip1,1:jjp1)=1. … … 160 160 ! CALL histwrite(nid_ctesGCM, "ok_orodr", itau_w, 161 161 ! . zx_tmp_2d,iip1*jjp1,ndex2d) 162 ! 162 163 163 ! IF(ok_orolf) THEN 164 164 ! zx_tmp_2d(1:iip1,1:jjp1)=1. … … 168 168 ! CALL histwrite(nid_ctesGCM, "ok_orolf", itau_w, 169 169 ! . zx_tmp_2d,iip1*jjp1,ndex2d) 170 ! 170 171 171 ! IF(ok_limitvrai) THEN 172 172 ! zx_tmp_2d(1:iip1,1:jjp1)=1. … … 176 176 ! CALL histwrite(nid_ctesGCM, "ok_limitvrai", itau_w, 177 177 ! . zx_tmp_2d,iip1*jjp1,ndex2d) 178 ! 178 179 179 ! zx_tmp_2d(1:iip1,1:jjp1)=nbapp_rad 180 180 ! CALL histwrite(nid_ctesGCM, "nbapp_rad", itau_w, 181 181 ! . zx_tmp_2d,iip1*jjp1,ndex2d) 182 ! 182 183 183 ! zx_tmp_2d(1:iip1,1:jjp1)=iflag_con 184 184 ! CALL histwrite(nid_ctesGCM, "iflag_con", itau_w,
Note: See TracChangeset
for help on using the changeset viewer.