Changeset 5100 for LMDZ6/branches/Amaury_dev/tools/make_sso
- Timestamp:
- Jul 23, 2024, 7:00:20 AM (7 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev/tools/make_sso/make_sso_SpherePack.f90
r5099 r5100 117 117 SELECT CASE(arg) 118 118 CASE('-i'); f_in=args(k); msg='Missing file "'//TRIM(f_in)//'".' 119 ll= NF90_OPEN(f_in,NF90_NOWRITE,fID)/=nf90_noerr120 IF(.NOT.ll) n= NF90_CLOSE(fID)119 ll=nf90_open(f_in,nf90_nowrite,fID)/=nf90_noerr 120 IF(.NOT.ll) n=nf90_close(fID) 121 121 CASE('-res'); nlon_ou=str2int(args(k)); k=k+1 122 122 nlat_ou=str2int(args(k)) … … 135 135 IF(ALL(['noro','spec']/=fmsk)) THEN 136 136 msg='Missing or wrong "-m" option ; can be "noro", "spec" or a mask file' 137 CALL err( NF90_OPEN(fmsk,NF90_NOWRITE,fID)/=nf90_noerr,msg)137 CALL err(nf90_open(fmsk,nf90_nowrite,fID)/=nf90_noerr,msg) 138 138 CALL nc(NF90_INQ_VARID(fID,"MaskOcean",vID),"MaskOcean") !--- MASK ID 139 139 CALL nc(NF90_INQUIRE_VARIABLE(fID,vID,dimids=dIDs)) !--- DIMS IDS 140 140 CALL nc(nf90_inquire_dimension(fID,dIDs(1),len=nlon_ou),'x')!--- NB LONG 141 141 CALL nc(nf90_inquire_dimension(fID,dIDs(2),len=nlat_ou),'y')!--- NB LAT 142 CALL nc( NF90_CLOSE(fID))142 CALL nc(nf90_close(fID)) 143 143 END IF 144 144 IF(nlon_ou<=0.OR.nlat_ou<=0) THEN … … 147 147 148 148 !=== READ THE INPUT FIELD ======================================================= 149 CALL nc( NF90_OPEN(f_in,NF90_NOWRITE,fID))149 CALL nc(nf90_open(f_in,nf90_nowrite,fID)) 150 150 WRITE(*,*)'>> Reading variable "'//TRIM(vnam)//'" from "'//TRIM(f_in)//'"...' 151 151 … … 163 163 CALL nc(nf90_get_var (fID,loID,lon_in) ,lonn) 164 164 CALL nc(nf90_get_var (fID,laID,lat_in) ,latn) 165 CALL nc( NF90_GET_ATT(fID,loID,'units',lonu),lonn)166 CALL nc( NF90_GET_ATT(fID,laID,'units',latu),latn)165 CALL nc(nf90_get_att (fID,loID,'units',lonu),lonn) 166 CALL nc(nf90_get_att (fID,laID,'units',latu),latn) 167 167 CALL nc(nf90_get_var (fID,vID,h(:,:),[1,1],[nlon_in+1,nlat_in]),vnam) 168 CALL nc( NF90_CLOSE(fID))168 CALL nc(nf90_close(fID)) 169 169 170 170 !--- CHECK WETHER GRID IS CORRECT (GLOBAL DOMAIN, IDENTIFIED UNITS...) … … 368 368 ALLOCATE(msko(nlon_ou,nlat_ou)) 369 369 msg='Missing or wrong "-m" option ; can be "noro", "spec" or a mask file' 370 CALL err( NF90_OPEN(fmsk,NF90_NOWRITE,fID)/=nf90_noerr,msg)370 CALL err(nf90_open(fmsk,nf90_nowrite,fID)/=nf90_noerr,msg) 371 371 CALL nc(NF90_INQ_VARID(fID,"MaskOcean",vID),"MaskOcean") !--- MASK ID 372 372 CALL nc(nf90_get_var(fID,vID,msko(:,:))) !--- MASK 373 CALL nc( NF90_CLOSE(fID))373 CALL nc(nf90_close(fID)) 374 374 msko(:,:)=1.0-msko(:,:) 375 375 END SELECT … … 457 457 f_ou='make_sso_'//TRIM(res_ou)//'_'//TRIM(f_in) 458 458 fnam=f_ou 459 CALL nc( NF90_CREATE(f_ou,NF90_CLOBBER,fID))460 461 CALL nc( NF90_DEF_DIM(fID,'x',nlon_ou,xID))462 CALL nc( NF90_DEF_VAR(fID,'x',NF90_REAL,xID,loID) ,'x')463 CALL nc( NF90_PUT_ATT(fID,loID,'long_name','Longitude'),'x')464 CALL nc( NF90_PUT_ATT(fID,loID,'units','degrees_east') ,'x')465 466 CALL nc( NF90_DEF_DIM(fID,'y',nlat_ou,yID))467 CALL nc( NF90_DEF_VAR(fID,'y',NF90_REAL,yID,laID) ,'y')468 CALL nc( NF90_PUT_ATT(fID,laID,'long_name','Latitude') ,'y')469 CALL nc( NF90_PUT_ATT(fID,laID,'units','degrees_north'),'y')470 471 CALL nc( NF90_DEF_VAR(fID,'mask',NF90_REAL,[xID,yID],mskID),'mask')459 CALL nc(nf90_create(f_ou,nf90_clobber,fID)) 460 461 CALL nc(nf90_def_dim(fID,'x',nlon_ou,xID)) 462 CALL nc(nf90_def_var(fID,'x',NF90_REAL,xID,loID) ,'x') 463 CALL nc(nf90_put_att(fID,loID,'long_name','Longitude'),'x') 464 CALL nc(nf90_put_att(fID,loID,'units','degrees_east') ,'x') 465 466 CALL nc(nf90_def_dim(fID,'y',nlat_ou,yID)) 467 CALL nc(nf90_def_var(fID,'y',NF90_REAL,yID,laID) ,'y') 468 CALL nc(nf90_put_att(fID,laID,'long_name','Latitude') ,'y') 469 CALL nc(nf90_put_att(fID,laID,'units','degrees_north'),'y') 470 471 CALL nc(nf90_def_var(fID,'mask',NF90_REAL,[xID,yID],mskID),'mask') 472 472 IF(fmsk=='noro') & 473 CALL nc( NF90_DEF_VAR(fID,'Zphi',NF90_REAL,[xID,yID],phiID),'Zphi')474 CALL nc( NF90_DEF_VAR(fID,'Zmea',NF90_REAL,[xID,yID],meaID),'Zmea')475 CALL nc( NF90_DEF_VAR(fID,'mu' ,NF90_REAL,[xID,yID], muID),'mu' )476 CALL nc( NF90_DEF_VAR(fID,'Zsig',NF90_REAL,[xID,yID],sigID),'Zsig')477 CALL nc( NF90_DEF_VAR(fID,'Zgam',NF90_REAL,[xID,yID],gamID),'Zgam')478 CALL nc( NF90_DEF_VAR(fID,'Zthe',NF90_REAL,[xID,yID],theID),'Zthe')479 CALL nc( NF90_DEF_VAR(fID,'Zpic',NF90_REAL,[xID,yID],picID),'Zpic')480 CALL nc( NF90_DEF_VAR(fID,'Zval',NF90_REAL,[xID,yID],valID),'Zval')481 482 CALL nc( NF90_PUT_ATT(fID,mskID,'long_name','Fractional land mask' ),'mask')473 CALL nc(nf90_def_var(fID,'Zphi',NF90_REAL,[xID,yID],phiID),'Zphi') 474 CALL nc(nf90_def_var(fID,'Zmea',NF90_REAL,[xID,yID],meaID),'Zmea') 475 CALL nc(nf90_def_var(fID,'mu' ,NF90_REAL,[xID,yID], muID),'mu' ) 476 CALL nc(nf90_def_var(fID,'Zsig',NF90_REAL,[xID,yID],sigID),'Zsig') 477 CALL nc(nf90_def_var(fID,'Zgam',NF90_REAL,[xID,yID],gamID),'Zgam') 478 CALL nc(nf90_def_var(fID,'Zthe',NF90_REAL,[xID,yID],theID),'Zthe') 479 CALL nc(nf90_def_var(fID,'Zpic',NF90_REAL,[xID,yID],picID),'Zpic') 480 CALL nc(nf90_def_var(fID,'Zval',NF90_REAL,[xID,yID],valID),'Zval') 481 482 CALL nc(nf90_put_att(fID,mskID,'long_name','Fractional land mask' ),'mask') 483 483 IF(fmsk=='noro') & 484 CALL nc( NF90_PUT_ATT(fID,phiID,'long_name','Geopotential' ),'Zphi')485 CALL nc( NF90_PUT_ATT(fID,meaID,'long_name','Mean orography' ),'Zmea')486 CALL nc( NF90_PUT_ATT(fID, muID,'long_name','Std deviation of sub-cell scales orography'),'mu' )487 CALL nc( NF90_PUT_ATT(fID,sigID,'long_name','Slope along principal axis' ),'Zsig')488 CALL nc( NF90_PUT_ATT(fID,gamID,'long_name','Anisotropy (aspect ratio)' ),'Zgam')489 CALL nc( NF90_PUT_ATT(fID,theID,'long_name','Orientation (principal axis)' ),'Zthe')490 CALL nc( NF90_PUT_ATT(fID,picID,'long_name','Maximum height' ),'Zpic')491 CALL nc( NF90_PUT_ATT(fID,valID,'long_name','Minimum height' ),'Zval')492 493 CALL nc( NF90_PUT_ATT(fID,mskID,'units','none' ),'mask')484 CALL nc(nf90_put_att(fID,phiID,'long_name','Geopotential' ),'Zphi') 485 CALL nc(nf90_put_att(fID,meaID,'long_name','Mean orography' ),'Zmea') 486 CALL nc(nf90_put_att(fID, muID,'long_name','Std deviation of sub-cell scales orography'),'mu' ) 487 CALL nc(nf90_put_att(fID,sigID,'long_name','Slope along principal axis' ),'Zsig') 488 CALL nc(nf90_put_att(fID,gamID,'long_name','Anisotropy (aspect ratio)' ),'Zgam') 489 CALL nc(nf90_put_att(fID,theID,'long_name','Orientation (principal axis)' ),'Zthe') 490 CALL nc(nf90_put_att(fID,picID,'long_name','Maximum height' ),'Zpic') 491 CALL nc(nf90_put_att(fID,valID,'long_name','Minimum height' ),'Zval') 492 493 CALL nc(nf90_put_att(fID,mskID,'units','none' ),'mask') 494 494 IF(fmsk=='noro') & 495 CALL nc( NF90_PUT_ATT(fID,phiID,'units','m' ),'Zphi')496 CALL nc( NF90_PUT_ATT(fID,meaID,'units','m' ),'Zmea')497 CALL nc( NF90_PUT_ATT(fID, muID,'units','m' ),'mu' )498 CALL nc( NF90_PUT_ATT(fID,sigID,'units','m/m' ),'Zsig')499 CALL nc( NF90_PUT_ATT(fID,gamID,'units','none' ),'Zgam')500 CALL nc( NF90_PUT_ATT(fID,theID,'units','degrees'),'Zthe')501 CALL nc( NF90_PUT_ATT(fID,picID,'units','m' ),'Zpic')502 CALL nc( NF90_PUT_ATT(fID,valID,'units','m' ),'Zval')503 504 CALL nc( NF90_PUT_ATT(fID,NF90_GLOBAL,'Conventions','COARDS/CF-1.0'))505 CALL nc( NF90_PUT_ATT(fID,NF90_GLOBAL,'Initial_Grid',TRIM(res_in)))506 CALL nc( NF90_PUT_ATT(fID,NF90_GLOBAL,'history',TRIM(call_seq)))507 CALL nc( NF90_ENDDEF(fID))508 509 CALL nc( NF90_PUT_VAR(fID, loID,lon_ou),'x' )510 CALL nc( NF90_PUT_VAR(fID, laID,lat_ou),'y' )511 CALL nc( NF90_PUT_VAR(fID,mskID,msko),'mask')495 CALL nc(nf90_put_att(fID,phiID,'units','m' ),'Zphi') 496 CALL nc(nf90_put_att(fID,meaID,'units','m' ),'Zmea') 497 CALL nc(nf90_put_att(fID, muID,'units','m' ),'mu' ) 498 CALL nc(nf90_put_att(fID,sigID,'units','m/m' ),'Zsig') 499 CALL nc(nf90_put_att(fID,gamID,'units','none' ),'Zgam') 500 CALL nc(nf90_put_att(fID,theID,'units','degrees'),'Zthe') 501 CALL nc(nf90_put_att(fID,picID,'units','m' ),'Zpic') 502 CALL nc(nf90_put_att(fID,valID,'units','m' ),'Zval') 503 504 CALL nc(nf90_put_att(fID,nf90_global,'Conventions','COARDS/CF-1.0')) 505 CALL nc(nf90_put_att(fID,nf90_global,'Initial_Grid',TRIM(res_in))) 506 CALL nc(nf90_put_att(fID,nf90_global,'history',TRIM(call_seq))) 507 CALL nc(nf90_enddef(fID)) 508 509 CALL nc(nf90_put_var(fID, loID,lon_ou),'x' ) 510 CALL nc(nf90_put_var(fID, laID,lat_ou),'y' ) 511 CALL nc(nf90_put_var(fID,mskID,msko),'mask') 512 512 IF(fmsk=='noro') & 513 CALL nc( NF90_PUT_VAR(fID,phiID,Zphi),'Zphi')514 CALL nc( NF90_PUT_VAR(fID,meaID,h0 ),'Zmea')515 CALL nc( NF90_PUT_VAR(fID, muID,mu ),'mu' )516 CALL nc( NF90_PUT_VAR(fID,sigID,Zsig),'Zsig')517 CALL nc( NF90_PUT_VAR(fID,gamID,Zgam),'Zgam')518 CALL nc( NF90_PUT_VAR(fID,theID,Zthe),'Zthe')519 CALL nc( NF90_PUT_VAR(fID,picID, h0+2*mu ),'Zpic')520 CALL nc( NF90_PUT_VAR(fID,valID,MAX(0.,h0-2*mu)),'Zval')521 CALL nc( NF90_CLOSE(fID))513 CALL nc(nf90_put_var(fID,phiID,Zphi),'Zphi') 514 CALL nc(nf90_put_var(fID,meaID,h0 ),'Zmea') 515 CALL nc(nf90_put_var(fID, muID,mu ),'mu' ) 516 CALL nc(nf90_put_var(fID,sigID,Zsig),'Zsig') 517 CALL nc(nf90_put_var(fID,gamID,Zgam),'Zgam') 518 CALL nc(nf90_put_var(fID,theID,Zthe),'Zthe') 519 CALL nc(nf90_put_var(fID,picID, h0+2*mu ),'Zpic') 520 CALL nc(nf90_put_var(fID,valID,MAX(0.,h0-2*mu)),'Zval') 521 CALL nc(nf90_close(fID)) 522 522 WRITE(*,*)'Finished.' 523 523
Note: See TracChangeset
for help on using the changeset viewer.