Changeset 5099 for LMDZ6/branches/Amaury_dev/libf/dyn3dmem
- Timestamp:
- Jul 22, 2024, 9:29:09 PM (2 months ago)
- Location:
- LMDZ6/branches/Amaury_dev/libf/dyn3dmem
- Files:
-
- 57 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/abort_gcm.F
r5082 r5099 1 ! 1 2 2 ! $Id: abort_gcm.F 1747 2013-04-23 14:06:30Z lguez $ 3 ! 3 4 4 c 5 5 c -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/addfi_loc.F
r2598 r5099 1 ! 1 2 2 ! $Id$ 3 ! 3 4 4 SUBROUTINE addfi_loc(pdt, leapf, forward, 5 5 S pucov, pvcov, pteta, pq , pps , -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/advect_new_loc.F
r5086 r5099 1 ! 1 2 2 ! $Header$ 3 ! 3 4 4 SUBROUTINE advect_new_loc(ucov,vcov,teta,w,massebx,masseby, 5 5 & du,dv,dteta) -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/advtrac_loc.F90
r5082 r5099 4 4 SUBROUTINE advtrac_loc(pbarug, pbarvg, wg, p, massem, q, teta, pk) 5 5 ! Auteur : F. Hourdin 6 ! 6 7 7 ! Modif. P. Le Van (20/12/97) 8 8 ! F. Codron (10/99) 9 9 ! D. Le Croller (07/2001) 10 10 ! M.A Filiberti (04/2002) 11 ! 11 12 12 USE infotrac, ONLY: nqtot, tracers 13 13 USE control_mod, ONLY: iapp_tracvl, day_step, planet_type … … 23 23 24 24 IMPLICIT NONE 25 ! 25 26 26 include "dimensions.h" 27 27 include "paramet.h" … … 122 122 #endif 123 123 124 !125 124 ! CALL Register_Hallo_v(pbarvg,llm,1,1,1,1,TestRequest) 126 125 ! CALL SendRequest(TestRequest) -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/bands.F90
r5090 r5099 1 ! 1 2 2 ! $Id$ 3 ! 3 4 4 module Bands 5 5 USE parallel_lmdz -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/bilan_dyn_loc.F
r5093 r5099 1 ! 1 2 2 ! $Id: bilan_dyn_p.F 1299 2010-01-20 14:27:21Z fairhead $ 3 ! 3 4 4 SUBROUTINE bilan_dyn_loc (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/dyn3dmem/caladvtrac_loc.F
r5082 r5099 1 ! 1 2 2 ! $Id: caladvtrac_p.F 1299 2010-01-20 14:27:21Z fairhead $ 3 ! 3 4 4 c 5 5 c -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/caldyn_loc.F
r5082 r5099 1 ! 1 2 2 ! $Id: $ 3 ! 3 4 4 #undef DEBUG_IO 5 5 !#define DEBUG_IO … … 17 17 18 18 !======================================================================= 19 ! 19 20 20 ! Auteur : P. Le Van 21 ! 21 22 22 ! Objet: 23 23 ! ------ 24 ! 24 25 25 ! Calcul des tendances dynamiques. 26 ! 26 27 27 ! Modif 04/93 F.Forget 28 28 !======================================================================= -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/call_dissip_mod.F90
r3435 r5099 222 222 ! ....... P. Le Van ( ajout le 17/04/96 ) ........... 223 223 ! ... Calcul de la valeur moyenne, unique de h aux poles ..... 224 !225 224 226 225 ijb=ij_begin -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/convmas1_loc.F90
r2603 r5099 1 1 SUBROUTINE convmas1_loc (pbaru, pbarv, convm) 2 ! 2 3 3 !------------------------------------------------------------------------------- 4 4 ! Authors: P. Le Van , Fr. Hourdin. -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/convmas2_loc.F90
r2603 r5099 1 1 SUBROUTINE convmas2_loc (convm) 2 ! 2 3 3 !------------------------------------------------------------------------------- 4 4 ! Authors: P. Le Van , Fr. Hourdin. -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/convmas_loc.F90
r2603 r5099 1 1 SUBROUTINE convmas_loc (pbaru, pbarv, convm) 2 ! 2 3 3 !------------------------------------------------------------------------------- 4 4 ! Authors: P. Le Van , Fr. Hourdin. -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/covnat_loc.F
r4593 r5099 1 ! 1 2 2 ! $Header$ 3 ! 3 4 4 SUBROUTINE covnat_loc(klevel,ucov, vcov, unat, vnat ) 5 5 USE parallel_lmdz -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/dissip_loc.F
r2597 r5099 1 ! 1 2 2 ! $Id: $ 3 ! 3 4 4 SUBROUTINE dissip_loc( vcov,ucov,teta,p, dv,du,dh ) 5 5 c -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/dynetat0_loc.F90
r5091 r5099 1 1 SUBROUTINE dynetat0_loc(fichnom,vcov,ucov,teta,q,masse,ps,phis,time) 2 ! 2 3 3 !------------------------------------------------------------------------------- 4 4 ! Authors: P. Le Van , L.Fairhead … … 9 9 USE infotrac, ONLY: nqtot, tracers, niso, iqIsoPha, iH2O, isoName 10 10 USE strings_mod, ONLY: maxlen, msg, strStack, real2str, int2str, strIdx 11 USE netcdf, ONLY: NF90_OPEN, NF90_NOWRITE, NF90_INQUIRE_DIMENSION, NF90_INQ_VARID, &12 NF90_CLOSE, NF90_GET_VAR, NF90_INQUIRE_VARIABLE, NF90_NoErr11 USE netcdf, ONLY: NF90_OPEN, NF90_NOWRITE, nf90_inquire_dimension, NF90_INQ_VARID, & 12 NF90_CLOSE, nf90_get_var, NF90_INQUIRE_VARIABLE, nf90_noerr 13 13 USE readTracFiles_mod, ONLY: new2oldH2O, newHNO3, oldHNO3, getKey 14 14 USE control_mod, ONLY: planet_type … … 87 87 pa = tab_cntrl(idecal+13) 88 88 preff = tab_cntrl(idecal+14) 89 ! 89 90 90 clon = tab_cntrl(idecal+15) 91 91 clat = tab_cntrl(idecal+16) 92 92 grossismx = tab_cntrl(idecal+17) 93 93 grossismy = tab_cntrl(idecal+18) 94 ! 94 95 95 IF ( tab_cntrl(idecal+19)==1. ) THEN 96 96 fxyhypb = .TRUE. … … 122 122 123 123 var="temps" 124 IF(NF90_INQ_VARID(fID,var,vID)/= NF90_NoErr) THEN124 IF(NF90_INQ_VARID(fID,var,vID)/=nf90_noerr) THEN 125 125 CALL msg('missing field <temps> ; trying with <Time>', modname) 126 126 var="Time" 127 127 CALL err(NF90_INQ_VARID(fID,var,vID),"inq",var) 128 128 END IF 129 CALL err( NF90_GET_VAR(fID,vID,time),"get",var)129 CALL err(nf90_get_var(fID,vID,time),"get",var) 130 130 131 131 ALLOCATE(phis_glo(ip1jmp1)) … … 157 157 ll = .FALSE. 158 158 #ifdef REPROBUS 159 ll = NF90_INQ_VARID(fID, 'HNO3tot', vID) /= NF90_NoErr !--- DETECT OLD REPRO start.nc FILE159 ll = NF90_INQ_VARID(fID, 'HNO3tot', vID) /= nf90_noerr !--- DETECT OLD REPRO start.nc FILE 160 160 #endif 161 161 DO iq=1,nqtot … … 170 170 END IF 171 171 !-------------------------------------------------------------------------------------------------------------------------- 172 IF(NF90_INQ_VARID(fID, var, vID) == NF90_NoErr .AND. .NOT.lSkip) THEN !=== REGULAR CASE: AVAILABLE VARIABLE172 IF(NF90_INQ_VARID(fID, var, vID) == nf90_noerr .AND. .NOT.lSkip) THEN !=== REGULAR CASE: AVAILABLE VARIABLE 173 173 CALL get_var2(var,q_glo); q(ijb_u:ije_u,:,iq)=q_glo(ijb_u:ije_u,:) 174 174 !-------------------------------------------------------------------------------------------------------------------------- 175 ELSE IF(NF90_INQ_VARID(fID, oldVar, vID) == NF90_NoErr) THEN !=== TRY WITH ALTERNATE NAME175 ELSE IF(NF90_INQ_VARID(fID, oldVar, vID) == nf90_noerr) THEN !=== TRY WITH ALTERNATE NAME 176 176 CALL msg('Tracer <'//TRIM(var)//'> is missing => initialized to <'//TRIM(oldVar)//'>', modname) 177 177 CALL get_var2(oldVar, q_glo); q(ijb_u:ije_u,:,iq)=q_glo(ijb_u:ije_u,:) … … 241 241 ierr=NF90_INQUIRE_VARIABLE(fID,vID,ndims=nd) 242 242 IF(nd==1) THEN 243 CALL err( NF90_GET_VAR(fID,vID,v),"get",var); RETURN243 CALL err(nf90_get_var(fID,vID,v),"get",var); RETURN 244 244 END IF 245 245 ierr=NF90_INQUIRE_VARIABLE(fID,vID,dimids=dids) 246 DO k=1,nd; ierr= NF90_INQUIRE_DIMENSION(fID,dids(k),len=nn(k)); END DO246 DO k=1,nd; ierr=nf90_inquire_dimension(fID,dids(k),len=nn(k)); END DO 247 247 ntot=PRODUCT(nn(1:nd)) 248 248 SELECT CASE(nd) 249 249 CASE(2); ALLOCATE(w2(nn(1),nn(2))) 250 CALL err( NF90_GET_VAR(fID,vID,w2),"get",var)250 CALL err(nf90_get_var(fID,vID,w2),"get",var) 251 251 v=RESHAPE(w2,[ntot]); DEALLOCATE(w2) 252 252 CASE(3); ALLOCATE(w3(nn(1),nn(2),nn(3))) 253 CALL err( NF90_GET_VAR(fID,vID,w3),"get",var)253 CALL err(nf90_get_var(fID,vID,w3),"get",var) 254 254 v=RESHAPE(w3,[ntot]); DEALLOCATE(w3) 255 255 END SELECT … … 267 267 268 268 IF(nd==1) THEN 269 CALL err( NF90_GET_VAR(fID,vID,v),"get",var); RETURN269 CALL err(nf90_get_var(fID,vID,v),"get",var); RETURN 270 270 END IF 271 271 ierr=NF90_INQUIRE_VARIABLE(fID,vID,dimids=dids) 272 272 273 DO k=1,nd; ierr= NF90_INQUIRE_DIMENSION(fID,dids(k),len=nn(k)); END DO273 DO k=1,nd; ierr=nf90_inquire_dimension(fID,dids(k),len=nn(k)); END DO 274 274 275 275 SELECT CASE(nd) 276 276 CASE(3); ALLOCATE(w3(nn(1),nn(2),nn(3))) 277 CALL err( NF90_GET_VAR(fID,vID,w3),"get",var)277 CALL err(nf90_get_var(fID,vID,w3),"get",var) 278 278 v=RESHAPE(w3,[nn(1)*nn(2),nn(3)]); DEALLOCATE(w3) 279 279 CASE(4); ALLOCATE(w4(nn(1),nn(2),nn(3),nn(4))) 280 CALL err( NF90_GET_VAR(fID,vID,w4),"get",var)280 CALL err(nf90_get_var(fID,vID,w4),"get",var) 281 281 v=RESHAPE(w4,[nn(1)*nn(2),nn(3)]); DEALLOCATE(w4) 282 282 END SELECT … … 288 288 CHARACTER(LEN=*), INTENT(IN) :: typ !--- TYPE OF OPERATION 289 289 CHARACTER(LEN=*), INTENT(IN) :: nam !--- FIELD/FILE NAME 290 IF(ierr== NF90_NoERR) RETURN290 IF(ierr==nf90_noerr) RETURN 291 291 SELECT CASE(typ) 292 292 CASE('inq'); mesg="Field <"//TRIM(nam)//"> is missing" -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/dynredem_loc.F90
r5088 r5099 1 1 SUBROUTINE dynredem0_loc(fichnom,iday_end,phis) 2 ! 2 3 3 !------------------------------------------------------------------------------- 4 4 ! Write the NetCDF restart file (initialization). … … 89 89 tab_cntrl(22) = grossismx 90 90 tab_cntrl(23) = grossismy 91 ! 91 92 92 IF ( fxyhypb ) THEN 93 93 tab_cntrl(24) = 1. … … 162 162 163 163 END SUBROUTINE dynredem0_loc 164 ! 165 !------------------------------------------------------------------------------- 166 167 168 !------------------------------------------------------------------------------- 169 ! 164 165 !------------------------------------------------------------------------------- 166 167 168 !------------------------------------------------------------------------------- 169 170 170 SUBROUTINE dynredem1_loc(fichnom,time,vcov,ucov,teta,q,masse,ps) 171 ! 171 172 172 !------------------------------------------------------------------------------- 173 173 ! Purpose: Write the NetCDF restart file (append). … … 178 178 USE infotrac, ONLY: nqtot, tracers, type_trac 179 179 USE control_mod 180 USE netcdf, ONLY: NF90_OPEN, NF90_NOWRITE, NF90_GET_VAR, NF90_INQ_VARID, &181 NF90_CLOSE, NF90_WRITE, NF90_PUT_VAR, NF90_NoErr180 USE netcdf, ONLY: NF90_OPEN, NF90_NOWRITE, nf90_get_var, NF90_INQ_VARID, & 181 NF90_CLOSE, NF90_WRITE, NF90_PUT_VAR, nf90_noerr 182 182 USE dynredem_mod, ONLY: dynredem_write_u, dynredem_write_v, dynredem_read_u, & 183 183 err, modname, fil, msg … … 225 225 var="controle" 226 226 CALL err(NF90_INQ_VARID(nid,var,vID),"inq",var) 227 CALL err( NF90_GET_VAR(nid,vID,tab_cntrl),"get",var)227 CALL err(nf90_get_var(nid,vID,tab_cntrl),"get",var) 228 228 tab_cntrl(31)=DBLE(itau_dyn + itaufin) 229 229 CALL err(NF90_INQ_VARID(nid,var,vID),"inq",var) … … 254 254 fil="start_trac.nc" 255 255 ierr=NF90_INQ_VARID(nid_trac,var,vID_trac) 256 dum='inq'; IF(ierr== NF90_NoErr) dum='fnd'256 dum='inq'; IF(ierr==nf90_noerr) dum='fnd' 257 257 WRITE(lunout,*)msg(dum,var) 258 258 !$OMP END MASTER 259 259 !$OMP BARRIER 260 IF(ierr== NF90_NoErr) CALL dynredem_read_u(nid_trac,var,q(:,:,iq),llm)260 IF(ierr==nf90_noerr) CALL dynredem_read_u(nid_trac,var,q(:,:,iq),llm) 261 261 END IF 262 262 fil=fichnom -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/dynredem_mod.F90
r5090 r5099 18 18 19 19 !=============================================================================== 20 ! 20 21 21 SUBROUTINE dynredem_write_u(ncid,id,var,ll) 22 ! 22 23 23 !=============================================================================== 24 24 IMPLICIT NONE … … 63 63 64 64 END SUBROUTINE dynredem_write_u 65 ! 66 !=============================================================================== 67 68 69 !=============================================================================== 70 ! 65 66 !=============================================================================== 67 68 69 !=============================================================================== 70 71 71 SUBROUTINE dynredem_write_v(ncid,id,var,ll) 72 ! 72 73 73 !=============================================================================== 74 74 IMPLICIT NONE … … 113 113 114 114 END SUBROUTINE dynredem_write_v 115 ! 116 !=============================================================================== 117 118 119 !=============================================================================== 120 ! 115 116 !=============================================================================== 117 118 119 !=============================================================================== 120 121 121 SUBROUTINE dynredem_read_u(ncid,id,var,ll) 122 ! 122 123 123 !=============================================================================== 124 124 IMPLICIT NONE … … 149 149 !$OMP MASTER 150 150 start(3)=l 151 CALL err( NF90_GET_VAR(ncid,nvarid,var_glo,start,count),"get",id)151 CALL err(nf90_get_var(ncid,nvarid,var_glo,start,count),"get",id) 152 152 !$OMP END MASTER 153 153 END IF … … 165 165 166 166 END SUBROUTINE dynredem_read_u 167 ! 168 !=============================================================================== 169 170 171 !=============================================================================== 172 ! 167 168 !=============================================================================== 169 170 171 !=============================================================================== 172 173 173 SUBROUTINE cre_var(ncid,var,title,did,units) 174 ! 174 175 175 !=============================================================================== 176 176 IMPLICIT NONE … … 187 187 188 188 END SUBROUTINE cre_var 189 ! 190 !=============================================================================== 191 192 193 !=============================================================================== 194 ! 189 190 !=============================================================================== 191 192 193 !=============================================================================== 194 195 195 SUBROUTINE put_var(ncid,var,title,did,v,units) 196 ! 196 197 197 !=============================================================================== 198 198 IMPLICIT NONE … … 210 210 CALL err(NF90_ENDDEF(ncid)) 211 211 nd=SIZE(did) 212 DO k=1,nd; CALL err( NF90_INQUIRE_DIMENSION(ncid,did(k),len=nn(k))); END DO212 DO k=1,nd; CALL err(nf90_inquire_dimension(ncid,did(k),len=nn(k))); END DO 213 213 IF(nd==1) CALL err(NF90_PUT_VAR(ncid,nvarid,RESHAPE(v,nn(1:1))),var) 214 214 IF(nd==2) CALL err(NF90_PUT_VAR(ncid,nvarid,RESHAPE(v,nn(1:2))),var) 215 215 CALL err(NF90_REDEF(ncid)) 216 216 END SUBROUTINE put_var 217 ! 218 !=============================================================================== 219 220 221 !=============================================================================== 222 ! 217 218 !=============================================================================== 219 220 221 !=============================================================================== 222 223 223 FUNCTION msg(typ,nam) 224 ! 224 225 225 !=============================================================================== 226 226 IMPLICIT NONE … … 242 242 243 243 END FUNCTION msg 244 ! 245 !=============================================================================== 246 247 248 !=============================================================================== 249 ! 244 245 !=============================================================================== 246 247 248 !=============================================================================== 249 250 250 SUBROUTINE err(ierr,typ,nam) 251 ! 251 252 252 !=============================================================================== 253 253 IMPLICIT NONE … … 258 258 CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: nam !--- FIELD NAME 259 259 !=============================================================================== 260 IF(ierr== NF90_NoERR) RETURN260 IF(ierr==nf90_noerr) RETURN 261 261 IF(.NOT.PRESENT(typ)) THEN 262 262 CALL ABORT_gcm(modname,NF90_STRERROR(ierr),ierr) … … 266 266 267 267 END SUBROUTINE err 268 ! 268 269 269 !=============================================================================== 270 270 -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/enercin_loc.F90
r2336 r5099 1 1 SUBROUTINE enercin_loc ( vcov, ucov, vcont, ucont, ecin ) 2 ! 2 3 3 !------------------------------------------------------------------------------- 4 4 ! Authors: P. Le Van. … … 21 21 ! . V 22 22 ! i,j-1 23 ! 23 24 24 ! alpha4 . . alpha1 25 ! 26 ! 25 26 27 27 ! U . . P . U 28 28 ! i-1,j i,j i,j 29 ! 29 30 30 ! alpha3 . . alpha2 31 ! 32 ! 31 32 33 33 ! . V 34 34 ! i,j 35 ! 35 36 36 ! Kinetic energy at scalar point P(i,j) (excluding poles) is: 37 37 ! Ecin = 0.5 * U(i-1,j)**2 *( alpha3 + alpha4 ) + -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/exner_hyb_loc_m.F90
r5082 r5099 9 9 ! Auteurs : P.Le Van , Fr. Hourdin . 10 10 ! .......... 11 ! 11 12 12 ! .... ngrid, ps,p sont des argum.d'entree au sous-prog ... 13 13 ! .... pks,pk,pkf sont des argum.de sortie au sous-prog ... 14 ! 14 15 15 ! ************************************************************************ 16 16 ! Calcule la fonction d'Exner pk = Cp * (p/preff) ** kappa , aux milieux des … … 20 20 ! .. N.B : Au sommet de l'atmosphere, p(llm+1) = 0. , et ps et pks sont 21 21 ! la pression et la fonction d'Exner au sol . 22 ! 22 23 23 ! -------- z 24 24 ! A partir des relations ( 1 ) p*dz(pk) = kappa *pk*dz(p) et 25 25 ! ( 2 ) pk(l) = alpha(l)+ beta(l)*pk(l-1) 26 26 ! ( voir note de Fr.Hourdin ) , 27 ! 27 28 28 ! on determine successivement , du haut vers le bas des couches, les 29 29 ! coef. alpha(llm),beta(llm) .,.,alpha(l),beta(l),,,alpha(2),beta(2), 30 30 ! puis pk(ij,1). Ensuite ,on calcule,du bas vers le haut des couches, 31 31 ! pk(ij,l) donne par la relation (2), pour l = 2 a l = llm . 32 ! 33 ! 32 33 34 34 USE parallel_lmdz 35 35 USE mod_filtreg_p … … 39 39 40 40 IMPLICIT NONE 41 ! 41 42 42 include "dimensions.h" 43 43 include "paramet.h" … … 59 59 !$OMP THREADPRIVATE(firstcall) 60 60 character(len=*),parameter :: modname="exner_hyb_loc" 61 ! 61 62 62 !$OMP BARRIER 63 63 … … 126 126 127 127 !$OMP BARRIER 128 ! 129 ! 128 129 130 130 ! .... Calcul des coeff. alpha et beta pour la couche l = llm .. 131 ! 131 132 132 !$OMP DO SCHEDULE(STATIC) 133 133 DO ij = ijb,ije … … 136 136 ENDDO 137 137 !$OMP ENDDO NOWAIT 138 ! 138 139 139 ! ... Calcul des coeff. alpha et beta pour l = llm-1 a l = 2 ... 140 ! 140 141 141 DO l = llm -1 , 2 , -1 142 ! 142 143 143 !$OMP DO SCHEDULE(STATIC) 144 144 DO ij = ijb, ije … … 152 152 ! *********************************************************************** 153 153 ! ..... Calcul de pk pour la couche 1 , pres du sol .... 154 ! 154 155 155 !$OMP DO SCHEDULE(STATIC) 156 156 DO ij = ijb, ije … … 159 159 ENDDO 160 160 !$OMP ENDDO NOWAIT 161 ! 161 162 162 ! ..... Calcul de pk(ij,l) , pour l = 2 a l = llm ........ 163 ! 163 164 164 DO l = 2, llm 165 165 !$OMP DO SCHEDULE(STATIC) -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/exner_milieu_loc_m.F90
r5082 r5099 6 6 7 7 SUBROUTINE exner_milieu_loc ( ngrid, ps, p, pks, pk, pkf ) 8 ! 8 9 9 ! Auteurs : F. Forget , Y. Wanherdrick 10 10 ! P.Le Van , Fr. Hourdin . 11 11 ! .......... 12 ! 12 13 13 ! .... ngrid, ps,p sont des argum.d'entree au sous-prog ... 14 14 ! .... pks,pk,pkf sont des argum.de sortie au sous-prog ... 15 ! 15 16 16 ! ************************************************************************ 17 17 ! Calcule la fonction d'Exner pk = Cp * (p/preff) ** kappa , aux milieux des … … 21 21 ! .. N.B : Au sommet de l'atmosphere, p(llm+1) = 0. , et ps et pks sont 22 22 ! la pression et la fonction d'Exner au sol . 23 ! 23 24 24 ! WARNING : CECI est une version speciale de exner_hyb originale 25 25 ! Utilise dans la version martienne pour pouvoir … … 28 28 ! energie totale/ interne / potentielle (F.Forget 2001) 29 29 ! ( voir note de Fr.Hourdin ) , 30 ! 30 31 31 USE parallel_lmdz 32 32 USE mod_filtreg_p … … 35 35 36 36 IMPLICIT NONE 37 ! 37 38 38 include "dimensions.h" 39 39 include "paramet.h" … … 117 117 118 118 !$OMP BARRIER 119 ! 120 ! 119 120 121 121 ! .... Calcul de pk pour la couche l 122 122 ! -------------------------------------------- 123 ! 123 124 124 dum1 = cpp * (2*preff)**(-kappa) 125 125 DO l = 1, llm-1 -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/filtreg_p.F
r5091 r5099 411 411 412 412 ! DO j=1,nlat 413 ! 413 414 414 ! PRINT *,"check FFT ----> Delta(",j,")=", 415 415 ! & sum(champ(:,j,:)-champ_fft(:,j,:))/sum(champ(:,j,:)), … … 419 419 ! PRINT *,"check FFT ----> Delta(",j,")=", 420 420 ! & sum(champ-champ_fft)/sum(champ) 421 ! 422 421 423 422 c 424 423 1111 FORMAT(//20x,'ERREUR dans le dimensionnement du tableau CHAMP a -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/flumass_loc.F90
r2336 r5099 1 1 SUBROUTINE flumass_loc(massebx,masseby, vcont, ucont, pbaru, pbarv ) 2 ! 2 3 3 !------------------------------------------------------------------------------- 4 4 ! Authors: P. Le Van , Fr. Hourdin. -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/fluxstokenc_p.F
r5082 r5099 1 ! 1 2 2 ! $Id: caladvtrac_p.F 1299 2010-01-20 14:27:21Z fairhead $ 3 ! 3 4 4 c 5 5 c -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/friction_loc.F
r5082 r5099 1 ! 1 2 2 ! $Id: friction_p.F 1299 2010-01-20 14:27:21Z fairhead $ 3 ! 3 4 4 c======================================================================= 5 5 SUBROUTINE friction_loc(ucov,vcov,pdt) … … 16 16 17 17 !======================================================================= 18 ! 18 19 19 ! Friction for the Newtonian case: 20 20 ! -------------------------------- -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/gcm.F90
r5090 r5099 1 ! 1 2 2 ! $Id$ 3 !4 3 5 4 PROGRAM gcm … … 36 35 37 36 !======================================================================= 38 ! 37 39 38 ! Auteur: P. Le Van /L. Fairhead/F.Hourdin 40 39 ! ------- 41 ! 40 42 41 ! Objet: 43 42 ! ------ 44 ! 43 45 44 ! GCM LMD nouvelle grille 46 ! 45 47 46 !======================================================================= 48 ! 47 49 48 ! ... Dans inigeom , nouveaux calculs pour les elongations cu , cv 50 49 ! et possibilite d'appeler une fonction f(y) a derivee tangente … … 52 51 ! ... Possibilite de choisir le schema pour l'advection de 53 52 ! q , en modifiant iadv dans traceur.def (MAF,10/02) . 54 ! 53 55 54 ! Pour Van-Leer + Vapeur d'eau saturee, iadv(1)=4. (F.Codron,10/99) 56 55 ! Pour Van-Leer iadv=10 57 ! 56 58 57 !----------------------------------------------------------------------- 59 58 ! Declarations: … … 133 132 ! lecture des fichiers gcm.def ou run.def 134 133 ! --------------------------------------- 135 ! 134 136 135 CALL conf_gcm( 99, .TRUE. ) 137 136 if (mod(iphysiq, iperiod) /= 0) call abort_gcm("conf_gcm", & 138 137 "iphysiq must be a multiple of iperiod", 1) 139 ! 140 ! 138 139 141 140 !------------------------------------ 142 141 ! Initialisation partie parallele … … 270 269 ENDIF 271 270 272 !273 271 ! on remet le calendrier \`a zero si demande 274 ! 272 275 273 IF (start_time /= starttime) then 276 274 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 : … … 459 457 460 458 ! #endif of #ifdef CPP_IOIPSL 461 ! 459 462 460 !----------------------------------------------------------------------- 463 461 ! Integration temporelle du modele : -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/getparam.F90
r2094 r5099 1 ! 1 2 2 ! $Id: getparam.F90 1279 2009-12-10 09:02:56Z fairhead $ 3 ! 3 4 4 MODULE getparam 5 5 #ifdef CPP_IOIPSL … … 20 20 SUBROUTINE ini_getparam(fichier) 21 21 USE parallel_lmdz 22 ! 22 23 23 IMPLICIT NONE 24 ! 24 25 25 CHARACTER*(*) :: fichier 26 26 IF (mpi_rank==0) OPEN(out_eff,file=fichier,status='unknown',form='formatted') … … 30 30 SUBROUTINE fin_getparam 31 31 USE parallel_lmdz 32 ! 32 33 33 IMPLICIT NONE 34 ! 34 35 35 IF (mpi_rank==0) CLOSE(out_eff) 36 36 … … 39 39 SUBROUTINE getparamr(TARGET,def_val,ret_val,comment) 40 40 USE parallel_lmdz 41 ! 41 42 42 IMPLICIT NONE 43 ! 43 44 44 ! Get a real scalar. We first check if we find it 45 45 ! in the database and if not we get it from the run.def 46 ! 46 47 47 ! getinr1d and getinr2d are written on the same pattern 48 ! 48 49 49 CHARACTER*(*) :: TARGET 50 50 REAL :: def_val … … 65 65 SUBROUTINE getparami(TARGET,def_val,ret_val,comment) 66 66 USE parallel_lmdz 67 ! 67 68 68 IMPLICIT NONE 69 ! 69 70 70 ! Get a real scalar. We first check if we find it 71 71 ! in the database and if not we get it from the run.def 72 ! 72 73 73 ! getinr1d and getinr2d are written on the same pattern 74 ! 74 75 75 CHARACTER*(*) :: TARGET 76 76 INTEGER :: def_val … … 92 92 SUBROUTINE getparaml(TARGET,def_val,ret_val,comment) 93 93 USE parallel_lmdz 94 ! 94 95 95 IMPLICIT NONE 96 ! 96 97 97 ! Get a real scalar. We first check if we find it 98 98 ! in the database and if not we get it from the run.def 99 ! 99 100 100 ! getinr1d and getinr2d are written on the same pattern 101 ! 101 102 102 CHARACTER*(*) :: TARGET 103 103 LOGICAL :: def_val -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/gr_u_scal_loc.F
r4593 r5099 1 ! 1 2 2 ! $Header$ 3 ! 3 4 4 SUBROUTINE gr_u_scal_loc(nx,x_u,x_scal) 5 5 c%W% %G% -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/gr_v_scal_loc.F
r4593 r5099 1 ! 1 2 2 ! $Header$ 3 ! 3 4 4 SUBROUTINE gr_v_scal_loc(nx,x_v,x_scal) 5 5 c%W% %G% -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/guide_loc_mod.F90
r5093 r5099 1653 1653 1654 1654 status=nf90_inq_dimid(ncidu, "LONU", dimid) 1655 status= NF90_INQUIRE_DIMENSION(ncidu,dimid,namedim,lendim)1655 status=nf90_inquire_dimension(ncidu,dimid,namedim,lendim) 1656 1656 IF (lendim /= iip1) THEN 1657 1657 abort_message='dimension LONU different from iip1 in u.nc' … … 1660 1660 1661 1661 status=nf90_inq_dimid(ncidu, "LATU", dimid) 1662 status= NF90_INQUIRE_DIMENSION(ncidu,dimid,namedim,lendim)1662 status=nf90_inquire_dimension(ncidu,dimid,namedim,lendim) 1663 1663 IF (lendim /= jjp1) THEN 1664 1664 abort_message='dimension LATU different from jjp1 in u.nc' … … 1684 1684 1685 1685 status=nf90_inq_dimid(ncidv, "LONV", dimid) 1686 status= NF90_INQUIRE_DIMENSION(ncidv,dimid,namedim,lendim)1686 status=nf90_inquire_dimension(ncidv,dimid,namedim,lendim) 1687 1687 1688 1688 IF (lendim /= iip1) THEN … … 1693 1693 1694 1694 status=nf90_inq_dimid(ncidv, "LATV", dimid) 1695 status= NF90_INQUIRE_DIMENSION(ncidv,dimid,namedim,lendim)1695 status=nf90_inquire_dimension(ncidv,dimid,namedim,lendim) 1696 1696 IF (lendim /= jjm) THEN 1697 1697 abort_message='dimension LATV different from jjm in v.nc' … … 1717 1717 1718 1718 status=nf90_inq_dimid(ncidt, "LONV", dimid) 1719 status= NF90_INQUIRE_DIMENSION(ncidt,dimid,namedim,lendim)1719 status=nf90_inquire_dimension(ncidt,dimid,namedim,lendim) 1720 1720 IF (lendim /= iip1) THEN 1721 1721 abort_message='dimension LONV different from iip1 in T.nc' … … 1724 1724 1725 1725 status=nf90_inq_dimid(ncidt, "LATU", dimid) 1726 status= NF90_INQUIRE_DIMENSION(ncidt,dimid,namedim,lendim)1726 status=nf90_inquire_dimension(ncidt,dimid,namedim,lendim) 1727 1727 IF (lendim /= jjp1) THEN 1728 1728 abort_message='dimension LATU different from jjp1 in T.nc' … … 1749 1749 1750 1750 status=nf90_inq_dimid(ncidQ, "LONV", dimid) 1751 status= NF90_INQUIRE_DIMENSION(ncidQ,dimid,namedim,lendim)1751 status=nf90_inquire_dimension(ncidQ,dimid,namedim,lendim) 1752 1752 IF (lendim /= iip1) THEN 1753 1753 abort_message='dimension LONV different from iip1 in hur.nc' … … 1756 1756 1757 1757 status=nf90_inq_dimid(ncidQ, "LATU", dimid) 1758 status= NF90_INQUIRE_DIMENSION(ncidQ,dimid,namedim,lendim)1758 status=nf90_inquire_dimension(ncidQ,dimid,namedim,lendim) 1759 1759 IF (lendim /= jjp1) THEN 1760 1760 abort_message='dimension LATU different from jjp1 in hur.nc' -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/iniacademic_loc.F90
r5088 r5099 1 ! 1 2 2 ! $Id: iniacademic.F90 1625 2012-05-09 13:14:48Z lguez $ 3 ! 3 4 4 SUBROUTINE iniacademic_loc(vcov,ucov,teta,q,masse,ps,phis,time_0) 5 5 … … 23 23 USE ener_mod, ONLY: etot0,ptot0,ztot0,stot0,ang0 24 24 USE readTracFiles_mod, ONLY: addPhase 25 use netcdf, only : NF90_NOWRITE,NF90_OPEN, NF90_NOERR,NF90_INQ_VARID,NF90_CLOSE, NF90_GET_VAR25 use netcdf, only : NF90_NOWRITE,NF90_OPEN,nf90_noerr,NF90_INQ_VARID,NF90_CLOSE, nf90_get_var 26 26 27 27 ! Author: Frederic Hourdin original: 15/01/93 … … 100 100 ! 1. Initializations for Earth-like case 101 101 ! -------------------------------------- 102 ! 102 103 103 ! initialize planet radius, rotation rate,... 104 104 call conf_planete … … 153 153 relief=0. 154 154 ierr = NF90_OPEN ('relief_in.nc', NF90_NOWRITE,nid_relief) 155 if (ierr== NF90_NOERR) THEN155 if (ierr==nf90_noerr) THEN 156 156 ierr=NF90_INQ_VARID(nid_relief,'RELIEF',varid) 157 if (ierr== NF90_NOERR) THEN158 ierr= NF90_GET_VAR(nid_relief,varid,relief(1:iim,1:jjp1))157 if (ierr==nf90_noerr) THEN 158 ierr=nf90_get_var(nid_relief,varid,relief(1:iim,1:jjp1)) 159 159 relief(iip1,:)=relief(1,:) 160 160 else -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/initdynav_loc.F
r5082 r5099 1 ! 1 2 2 ! $Id: initdynav_p.F 1279 2009-12-10 09:02:56Z fairhead $ 3 ! 3 4 4 subroutine initdynav_loc(day0,anne0,tstep,t_ops,t_wrt) 5 5 -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/initfluxsto_p.F
r2622 r5099 1 ! 1 2 2 ! $Id$ 3 ! 3 4 4 subroutine initfluxsto_p 5 5 . (infile,tstep,t_ops,t_wrt, -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/inithist_loc.F
r4050 r5099 1 ! 1 2 2 ! $Id: initdynav_p.F 1279 2009-12-10 09:02:56Z fairhead $ 3 ! 3 4 4 subroutine inithist_loc(day0,anne0,tstep,t_ops,t_wrt) 5 5 -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/integrd_loc.F
r5086 r5099 1 ! 1 2 2 ! $Id: integrd_p.F 1299 2010-01-20 14:27:21Z fairhead $ 3 ! 3 4 4 SUBROUTINE integrd_loc 5 5 $ ( nq,vcovm1,ucovm1,tetam1,psm1,massem1, … … 234 234 ! ijb=ij_begin 235 235 ! ije=ij_end 236 ! 236 237 237 !c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 238 238 ! DO l = 1,llm -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/leapfrog_loc.F
r5091 r5099 1 ! 1 2 2 ! $Id$ 3 ! 3 4 4 c 5 5 c … … 256 256 !$OMP MASTER 257 257 if (firstcall) then 258 ! 258 259 259 ! ALLOCATE(p(ijb_u:ije_u,llmp1)) 260 260 ! ALLOCATE(pks(ijb_u:ije_u)) … … 579 579 ! call Register_SwapFieldHallo(finvmaold,finvmaold,ip1jmp1,llm, 580 580 ! & jj_Nb_caldyn,0,0,TestRequest) 581 ! 581 582 582 ! do j=1,nqtot 583 583 ! call Register_SwapFieldHallo(q(:,:,j),q(:,:,j),ip1jmp1,llm, 584 584 ! & jj_nb_caldyn,0,0,TestRequest) 585 585 ! enddo 586 ! 586 587 587 ! call Set_Distrib(distrib_caldyn) 588 588 ! call SendRequest(TestRequest) … … 864 864 865 865 ! c Diagnostique de conservation de l'energie : initialisation 866 ! 866 867 867 ! c-jld 868 868 ! c$OMP BARRIER … … 879 879 ! #endif 880 880 ! call SetTag(Request_physic,800) 881 ! 881 882 882 ! call Register_SwapField_u(ucov,ucov,distrib_physic, 883 883 ! * Request_physic,up=2,down=2) 884 ! 884 885 885 ! call Register_SwapField_v(vcov,vcov,distrib_physic, 886 886 ! * Request_physic,up=2,down=2) … … 888 888 ! call Register_SwapField_u(teta,teta,distrib_physic, 889 889 ! * Request_physic,up=2,down=2) 890 ! 890 891 891 ! call Register_SwapField_u(masse,masse,distrib_physic, 892 892 ! * Request_physic,up=1,down=2) … … 894 894 ! call Register_SwapField_u(p,p,distrib_physic, 895 895 ! * Request_physic,up=2,down=2) 896 ! 896 897 897 ! call Register_SwapField_u(pk,pk,distrib_physic, 898 898 ! * Request_physic,up=2,down=2) 899 ! 899 900 900 ! call Register_SwapField_u(phis,phis,distrib_physic, 901 901 ! * Request_physic,up=2,down=2) 902 ! 902 903 903 ! call Register_SwapField_u(phi,phi,distrib_physic, 904 904 ! * Request_physic,up=2,down=2) 905 ! 905 906 906 ! call Register_SwapField_u(w,w,distrib_physic, 907 907 ! * Request_physic,up=2,down=2) 908 ! 908 909 909 ! call Register_SwapField_u(q,q,distrib_physic, 910 910 ! * Request_physic,up=2,down=2) … … 912 912 ! call Register_SwapField_u(flxw,flxw,distrib_physic, 913 913 ! * Request_physic,up=2,down=2) 914 ! 914 915 915 ! call SendRequest(Request_Physic) 916 916 ! c$OMP BARRIER … … 921 921 ! call Set_Distrib(distrib_Physic) 922 922 ! call VTe(VThallo) 923 ! 923 924 924 ! call VTb(VTphysiq) 925 925 ! c$OMP END MASTER … … 1080 1080 ! call Register_SwapField_u(ucov,ucov, 1081 1081 ! * distrib_caldyn,Request_physic) 1082 ! 1082 1083 1083 ! call Register_SwapField_v(vcov,vcov, 1084 1084 ! * distrib_caldyn,Request_physic) 1085 ! 1085 1086 1086 ! call Register_SwapField_u(teta,teta, 1087 1087 ! * distrib_caldyn,Request_physic) 1088 ! 1088 1089 1089 ! call Register_SwapField_u(masse,masse, 1090 1090 ! * distrib_caldyn,Request_physic) … … 1092 1092 ! call Register_SwapField_u(p,p, 1093 1093 ! * distrib_caldyn,Request_physic) 1094 ! 1094 1095 1095 ! call Register_SwapField_u(pk,pk, 1096 1096 ! * distrib_caldyn,Request_physic) 1097 ! 1097 1098 1098 ! call Register_SwapField_u(phis,phis, 1099 1099 ! * distrib_caldyn,Request_physic) 1100 ! 1100 1101 1101 ! call Register_SwapField_u(phi,phi, 1102 1102 ! * distrib_caldyn,Request_physic) 1103 ! 1103 1104 1104 ! call Register_SwapField_u(w,w, 1105 1105 ! * distrib_caldyn,Request_physic) … … 1107 1107 ! call Register_SwapField_u(q,q, 1108 1108 ! * distrib_caldyn,Request_physic) 1109 ! 1109 1110 1110 ! call SendRequest(Request_Physic) 1111 1111 ! c$OMP BARRIER … … 1226 1226 !c$OMP MASTER 1227 1227 ! call suspend_timer(timer_caldyn) 1228 ! 1228 1229 1229 !c print*,'Entree dans la dissipation : Iteration No ',true_itau 1230 1230 !c calcul de l'energie cinetique avant dissipation … … 1277 1277 ! call WriteField_u('dtetadis',dtetadis) 1278 1278 !#endif 1279 ! 1279 1280 1280 !! CALL FTRACE_REGION_END("dissip") 1281 ! 1281 1282 1282 ! ijb=ij_begin 1283 1283 ! ije=ij_end … … 1318 1318 ! call covcont_loc(llm,ucov,vcov,ucont,vcont) 1319 1319 ! call enercin_loc(vcov,ucov,vcont,ucont,ecin) 1320 ! 1320 1321 1321 ! ijb=ij_begin 1322 1322 ! ije=ij_end … … 1349 1349 ! ijb=ij_begin 1350 1350 ! ije=ij_end 1351 ! 1351 1352 1352 ! if (pole_nord) then 1353 1353 !c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) … … 1369 1369 ! ENDDO 1370 1370 ! tpn = SSUM(iim,tppn,1)/apoln 1371 ! 1371 1372 1372 ! DO ij = 1, iip1 1373 1373 ! ps( ij ) = tpn … … 1375 1375 !c$OMP END MASTER 1376 1376 ! endif 1377 ! 1377 1378 1378 ! if (pole_sud) then 1379 1379 !c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) … … 1395 1395 ! ENDDO 1396 1396 ! tps = SSUM(iim,tpps,1)/apols 1397 ! 1397 1398 1398 ! DO ij = 1, iip1 1399 1399 ! ps(ij+ip1jm) = tps … … 1408 1408 1409 1409 ! call stop_timer(timer_dissip) 1410 ! 1410 1411 1411 ! call VTb(VThallo) 1412 1412 !c$OMP END MASTER … … 1738 1738 ! iday = day_ini+itau/day_step 1739 1739 ! time = REAL(itau-(iday-day_ini)*day_step)/day_step+time_0 1740 ! 1740 1741 1741 ! IF(time.GT.1.) THEN 1742 1742 ! time = time-1. -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/lmdz_call_calfis.F90
r5090 r5099 129 129 #endif 130 130 131 !132 131 ! ....... Ajout P.Le Van ( 17/04/96 ) ........... 133 !134 135 132 136 133 !$OMP MASTER … … 390 387 !$OMP BARRIER 391 388 392 !393 389 ! Diagnostique de conservation de l'energie : difference 394 390 IF (ip_ebil_dyn>=1 ) THEN -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/logic_mod.F90
r4996 r5099 1 ! 1 2 2 ! $Id: $ 3 ! 3 4 4 MODULE logic_mod 5 5 -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/massbar_loc.F90
r2336 r5099 1 1 SUBROUTINE massbar_loc(masse,massebx,masseby) 2 ! 2 3 3 !------------------------------------------------------------------------------- 4 4 ! Authors: P. Le Van , Fr. Hourdin. … … 23 23 ! * alpha4(i,j) at point ( i-1/4,j-1/4 ) 24 24 ! where alpha1(i,j) = aire(i+1/4,j-1/4)/ aire(i,j) 25 ! 25 26 26 ! alpha4 . . alpha1 . alpha4 27 27 ! (i,j) (i,j) (i+1,j) 28 ! 28 29 29 ! P . U . . P 30 30 ! (i,j) (i,j) (i+1,j) 31 ! 31 32 32 ! alpha3 . . alpha2 .alpha3 33 33 ! (i,j) (i,j) (i+1,j) 34 ! 34 35 35 ! V . Z . . V 36 36 ! (i,j) 37 ! 37 38 38 ! alpha4 . . alpha1 .alpha4 39 39 ! (i,j+1) (i,j+1) (i+1,j+1) 40 ! 40 41 41 ! P . U . . P 42 42 ! (i,j+1) (i+1,j+1) 43 ! 44 ! 43 44 45 45 ! massebx(i,j) = masse(i ,j) * ( alpha1(i ,j) + alpha2(i,j)) + 46 46 ! masse(i+1,j) * ( alpha3(i+1,j) + alpha4(i+1,j) ) 47 47 ! localized at point ... U (i,j) ... 48 ! 48 49 49 ! masseby(i,j) = masse(i,j ) * ( alpha2(i,j ) + alpha3(i,j ) + 50 50 ! masse(i,j+1) * ( alpha1(i,j+1) + alpha4(i,j+1) -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/massbarxy_loc.F90
r5081 r5099 1 1 SUBROUTINE massbarxy_loc(masse,massebxy) 2 ! 2 3 3 !------------------------------------------------------------------------------- 4 4 ! Authors: P. Le Van , Fr. Hourdin. -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/mod_const_mpi.F90
r4848 r5099 1 ! 1 2 2 ! $Id: mod_const_para.F90 1279 2009-12-10 09:02:56Z fairhead $ 3 ! 3 4 4 MODULE mod_const_mpi 5 5 IMPLICIT NONE -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/mod_filtreg_p.F
r5091 r5099 420 420 421 421 ! DO j=1,nlat 422 ! 422 423 423 ! PRINT *,"check FFT ----> Delta(",j,")=", 424 424 ! & sum(champ(:,j,:)-champ_fft(:,j,:))/sum(champ(:,j,:)), … … 428 428 ! PRINT *,"check FFT ----> Delta(",j,")=", 429 429 ! & sum(champ-champ_fft)/sum(champ) 430 ! 431 430 432 431 c 433 432 1111 FORMAT(//20x,'ERREUR dans le dimensionnement du tableau CHAMP a -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/mod_xios_dyn3dmem.F90
r4619 r5099 1 ! 1 2 2 ! $Id$ 3 ! 3 4 4 ! This module contains the interface between the LMDZ dynamics dyn3dmem module and XIOS. 5 ! 5 6 6 ! Lists of subroutines 7 7 ! xios_dyn3dmem_init : context / calendar / domain / axis initialisations 8 ! 8 9 9 ! Initialisation of communicator between LMDZ and XIOS is done elsewhere: wxios_init called by init_const_mpi 10 10 ! (one of the first calls in gcm.F90) 11 11 ! L. Fairhead 11/2017 12 ! 13 ! 12 14 13 15 14 MODULE mod_xios_dyn3dmem -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/parallel_lmdz.F90
r5093 r5099 1 ! 1 2 2 ! $Id$ 3 ! 3 4 4 MODULE parallel_lmdz 5 5 USE mod_const_mpi … … 742 742 ! INCLUDE "dimensions.h" 743 743 ! INCLUDE "paramet.h" 744 ! 744 745 745 ! INTEGER :: ij,ll 746 746 ! REAL, dimension(ij,ll) :: Field 747 747 ! INTEGER :: up,down 748 ! 748 749 749 ! REAL,dimension(ij,ll): NewField 750 ! 750 751 751 ! NewField=0 752 ! 752 753 753 ! ijb=ij_begin 754 754 ! ije=ij_end -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/paramet.h
r1907 r5099 1 ! 1 2 2 ! $Id$ 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/dyn3dmem/qminimum_loc.F
r5082 r5099 1 ! 1 2 2 ! $Id$ 3 ! 3 4 4 SUBROUTINE qminimum_loc( q,nqtot,deltap ) 5 5 USE parallel_lmdz -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/sw_case_williamson91_6_loc.F
r2600 r5099 1 ! 1 2 2 ! $Id $ 3 ! 3 4 4 SUBROUTINE sw_case_williamson91_6_loc(vcov,ucov,teta,masse,ps) 5 5 -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/temps_mod.F90
r4608 r5099 1 ! 1 2 2 ! $Id: temps_mod.F90 -1 $ 3 ! 3 4 4 MODULE temps_mod 5 5 -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/top_bound_loc.F
r5093 r5099 1 ! 1 2 2 ! $Id: $ 3 ! 3 4 4 SUBROUTINE top_bound_loc(vcov,ucov,teta,masse,dt) 5 5 USE parallel_lmdz -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/tourpot_loc.F90
r2603 r5099 1 1 SUBROUTINE tourpot_loc ( vcov, ucov, massebxy, vorpot ) 2 ! 2 3 3 !------------------------------------------------------------------------------- 4 4 ! Authors: P. Le Van. -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/vitvert_loc.F90
r2600 r5099 1 1 SUBROUTINE vitvert_loc(convm, w) 2 ! 2 3 3 !------------------------------------------------------------------------------- 4 4 ! Authors: P. Le Van , Fr. Hourdin. -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/vlsplt_loc.F
r5098 r5099 1 ! 1 2 2 ! $Id$ 3 ! 3 4 4 RECURSIVE SUBROUTINE vlx_loc(q,pente_max,masse,u_m,ijb_x,ije_x,iq) 5 5 -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/vlspltgen_loc.F
r4996 r5099 1 1 2 !3 2 ! $Header$ 4 ! 3 5 4 SUBROUTINE vlspltgen_loc( q,pente_max,masse,w,pbaru,pbarv, 6 5 & pdt, p,pk,teta ) -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/vlspltqs_loc.F
r5098 r5099 1 ! 1 2 2 ! $Id$ 3 ! 3 4 4 SUBROUTINE vlxqs_loc(q,pente_max,masse,u_m,qsat,ijb_x,ije_x,iq) 5 5 c -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/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/dyn3dmem/writedyn_xios.F90
r5087 r5099 1 1 2 2 ! $Id$ 3 ! 3 4 4 SUBROUTINE writedyn_xios( vcov, ucov,teta,ppk,phi,q, & 5 5 masse,ps,phis) … … 15 15 16 16 implicit none 17 ! 17 18 18 ! Ecriture du fichier histoire au format xios 19 ! 20 ! 19 20 21 21 ! Entree: 22 22 ! vcov: vents v covariants … … 28 28 ! ps :pression au sol 29 29 ! phis : geopotentiel au sol 30 ! 30 31 31 ! L. Fairhead, LMD, 03/21 32 ! 32 33 33 ! ===================================================================== 34 ! 34 35 35 ! Declarations 36 36 include "dimensions.h" … … 40 40 include "iniprint.h" 41 41 42 !43 42 ! Arguments 44 !45 43 46 44 REAL vcov(ijb_v:ije_v,llm),ucov(ijb_u:ije_u,llm) … … 54 52 55 53 ! Variables locales 56 ! 54 57 55 INTEGER,SAVE,ALLOCATABLE :: ndex2d(:),ndexu(:),ndexv(:) 58 56 INTEGER :: iq, ii, ll … … 68 66 !$OMP THREADPRIVATE(first) 69 67 70 !71 68 ! Initialisations 72 !73 69 74 70 ! WRITE(*,*)'IN WRITEDYN_XIOS' … … 103 99 call covnat_loc(llm, ucov, vcov, unat, vnat) 104 100 105 !106 101 ! Appels a histwrite pour l'ecriture des variables a sauvegarder 107 ! 102 108 103 ! Vents U 109 ! 104 110 105 ijb=ij_begin 111 106 ije=ij_end … … 114 109 CALL writefield_dyn_u('U', unat(ijb:ije,:)) 115 110 116 !117 111 ! Vents V 118 ! 112 119 113 ije=ij_end 120 114 IF (pole_sud) THEN … … 130 124 CALL writefield_dyn_v('V', vbuffer(ijb:ije,:)) 131 125 ENDIF 132 133 126 134 135 !136 127 ! Temperature potentielle moyennee 137 ! 128 138 129 ijb=ij_begin 139 130 ije=ij_end … … 141 132 CALL writefield_dyn_u('THETA', teta(ijb:ije,:)) 142 133 143 !144 134 ! Temperature moyennee 145 !146 135 147 136 !$OMP DO SCHEDULE(STATIC,OMP_CHUNK) … … 154 143 CALL writefield_dyn_u('TEMP', tm(ijb:ije,:)) 155 144 145 ! Geopotentiel 156 146 157 !158 ! Geopotentiel159 !160 147 CALL writefield_dyn_u('PHI', phi(ijb:ije,:)) 161 148 149 ! Tracers? 162 150 163 !164 ! Tracers?165 !166 151 ! DO iq=1,nqtot 167 152 ! ENDDO 168 153 154 ! Masse 169 155 170 !171 ! Masse172 !173 156 CALL writefield_dyn_u('MASSE', masse(ijb:ije,:)) 174 157 158 ! Pression au sol 175 159 176 !177 ! Pression au sol178 !179 160 CALL writefield_dyn_u('PS', ps(ijb:ije)) 180 161 -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/writedynav_loc.F
r4046 r5099 1 ! 1 2 2 ! $Id: writedynav_p.F 1279 2009-12-10 09:02:56Z fairhead $ 3 ! 3 4 4 subroutine writedynav_loc( time, vcov, ucov,teta,ppk,phi,q, 5 5 . masse,ps,phis) -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/writehist_loc.F
r4046 r5099 1 ! 1 2 2 ! $Id: writedynav_p.F 1279 2009-12-10 09:02:56Z fairhead $ 3 ! 3 4 4 subroutine writehist_loc( time, vcov, ucov,teta,ppk,phi,q, 5 5 . masse,ps,phis)
Note: See TracChangeset
for help on using the changeset viewer.